2011-06-17 47 views
3

我可以动态地追加“选择”控制到DOM,将它附加到DOM后,我想改变最后的“选择”(最新的“选择” ),但它失败...jquery选择器不动态时动态追加html

(我不能设置在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> 

任何建议表示赞赏。

+0

这是一个非常令人困惑的问题,您提供的脚本在上下文中似乎没有意义。你可以尝试澄清吗? – Jivings

+1

实际上,这是他的选择器的问题;) – Patricia

+0

对不起,我的英语很差,我已尽全力表达我想说的话 –

回答

6

采取OUT参数,和之间的空间:最后

$('.params:last').html('<option>aaa</option><option>keyword in profile</option><option>last tweet</option>'); 
+0

非常感谢,您的回答非常快! –

+0

这是我的荣幸:) – Patricia

1

您的内容似乎DOM已经被加载后加入。

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

+0

您的解决方案也可以,但Patricla更快.. –

+1

其在1.9中删除 – om471987

0

嗯,你的CSS选择器是imporper应$('.params:last-child')$('.params:last')我认为空格键是不允许存在。

也没有人使用你所创建的对象forbis您:

$(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,则同样的想法会工作,而不是重新选择的对象使用一个你”已创建。