动态追加html时,jquery选择器不起作用

时间:2011-06-17 14:45:43

标签: javascript jquery html dom

我可以动态地将“select”控件附加到DOM,在将它附加到DOM之后,我想要更改最后一个“select”的html内容(动态添加的最新“select”),但它失败了......

(我无法在param_html中设置选项值,因为我应该稍后使用ajax请求来设置它们。)

<script>
    $(function(){
      var param_html = '<select class="params"></select>';
      $("input[value='+']").click(function(){
        $('#parameters').append(param_html);
          $('.params :last').html('<option>aaa</option><option>keyword in profile</option><option>last tweet</option>');
      });

    });
  </script>
  <div id="parameters">
    <input type="button" value="+">
    <select class="params"><option>1</option><option>2</option></select>
  </div>

任何建议都表示赞赏。

3 个答案:

答案 0 :(得分:6)

取出params和:last

之间的空格
$('.params:last').html('<option>aaa</option><option>keyword in profile</option><option>last tweet</option>');

答案 1 :(得分:1)

您的内容似乎是在加载完dom后添加的。

尝试直播http://api.jquery.com/live/

答案 2 :(得分:0)

你的CSS选择器应该是$('.params:last-child')$('.params:last'),我认为那里不允许使用空格键。

也没有人可以使用您创建的对象:

$(function(){
      var param_html = '<select class="params"></select>';
      $("input[value='+']").click(function(){
        $('#parameters').append(param_html);
          $(param_html).html('<option>aaa</option><option>keyword in profile</option><option>last tweet</option>');
      });

    });

如果您将来要使用AJAX,那么相同的想法将起作用,而不是将对象使用重新选择到您创建的对象。