jquery get元素被文本替换

时间:2013-09-06 14:12:24

标签: php jquery html

 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>";
                        }

这不会将id tester(DIDI)的文本替换为文本opgeslagen。

当我不使用$(this)它可以工作,但它适用于每个具有id测试器的div,我只是想让这个特定的div替换文本。

这样可行:

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

这不起作用:

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

2 个答案:

答案 0 :(得分:1)

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

列出的位置的$(this)将是POST方法。

拥有多个具有相同ID的元素不是一个好习惯。在多个元素上使用时更改为类。

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

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

答案 1 :(得分:0)

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