r-d-r-b-3
r-d-r-b-3

Reputation: 325

jquery get element replaced by text

 jQuery.ajaxSettings.traditional = true;
 $(document).ready(function(){
        $(".wijstoe").change(function(){
            var id = $(this).children('#test').map(function() {
             return $(this).text();
            }).get();
            var mw = $("option").val();
            var opg = "Opgeslagen !";
            $("#loading").css("display","block");
            $.post("wijstoe.php",
                {mw:mw, id:id},
                function(data,status)
                {       
                    $("#loading").css("display","none");
                    $(this).children('#tester').html(opg);                                          
                });
        });
    });

HTML / PHP :

                        echo "<td>$row[2]</td>";
                        echo "<td id='test1'>";
                        echo "<div class='wijstoe'>";
                        echo "<div id='test' style='display:none;'>".$row[0]."</div>";
                        echo "<form><select>";
                        if($_SESSION['uname'] == 'admin') {
                            $querya="select uname from users";
                            $resulta = mysql_query($querya);
                            while ($rowa = mysql_fetch_row($resulta)) {
                            echo "<option>".$rowa[0]."</option>";
                                    }
                        echo "</select></form>";
                        echo "<div id='tester'>DIDI</div>";
                        echo "</div>";
                        echo "</td>";
                        }

This does not get the text from id tester (DIDI) replaced by the text opgeslagen.

When I don't use $(this) it works but then it works for every div with id tester, i just want this specific div to have the text replaced.

So this works :

  $(this).children('#tester').html(opg);          

This does not work :

  $('#tester').html(opg);          

Upvotes: 0

Views: 76

Answers (2)

Robert
Robert

Reputation: 386

        $.post("wijstoe.php",
            {mw:mw, id:id},
            function(data,status)
            {       
                $("#loading").css("display","none");
                $(this).children('#tester').html(opg);                                          
            });

The $(this) at the location listed will be the POST method.

Having multiple elements with the same ID is not a good practice. Change to a class when using on multiple elements.

var tester = $(this).find('.tester');

$.post("wijstoe.php",
     {mw:mw, id:id},
     function(data,status)
     {       
         $("#loading").css("display","none");
         $(tester).html(opg);                                          
     });

Upvotes: 1

Liam Allan
Liam Allan

Reputation: 1115

try

$(this).find('#tester').html(opg);    

Upvotes: 0

Related Questions