Javascript 用于修改选择选项值的递归jQuery函数

Javascript 用于修改选择选项值的递归jQuery函数,javascript,jquery,ajax,forms,Javascript,Jquery,Ajax,Forms,我有一个我正试图用jQuery修改的表单。基本上,我的表单有两个元素,我需要更改每个元素中第一个选项的值。但是,有一个addmore选项,它使用AJAX动态生成另一个也需要更改的元素。此“添加更多”按钮可以无限次单击 现在我有这个: $(document).ready(function(){ $("#myname-0-field option:first").val("None"); $("#myname-1-field option:first").val("None"); });

我有一个我正试图用jQuery修改的表单。基本上,我的表单有两个元素,我需要更改每个元素中第一个选项的值。但是,有一个addmore选项,它使用AJAX动态生成另一个也需要更改的元素。此“添加更多”按钮可以无限次单击

现在我有这个:

$(document).ready(function(){
  $("#myname-0-field option:first").val("None");
  $("#myname-1-field option:first").val("None");
});
这很好,但一旦单击AddMore按钮,我就有了更多名为myname-2-field、myname-3-field、myname-4-field等的元素。显然,在jQuery中添加另一行不会影响这些元素,因为添加时文档已经加载

所以真正的问题是,有人能告诉我写一个函数的正确方向吗?这个函数可以在添加新元素并改变它时做出反应。如果可能的话,我也在寻找这个函数,并寻找myname-X-field选项:首先是tidyness。 使用实时功能

然后使用jqueryapi look函数中的每个函数集值

也许您可以将类添加到元素中,这样查找特定元素会更容易,并且不会将事件添加到其他类似元素中

在这个例子中,我有一个李同学

$('li.myClass').live('click', function() {
    $(this).val(); // this is the getter for clicked value
    $(this).val("some_value_here"); // this is the setter for clicked value
});
现在,您可以添加更多具有myClass类的元素,它将有一个click事件

顺便说一句,例如,如果您知道所有元素都在某个容器div中,那么您可以使用编写更高效的jQuery


这更有效,因为它只在Container下查看新元素,而不是从整个DOM结构中查看新元素。

非常感谢。因此,为了清楚起见,我想将delegate与live函数一起使用,但我不知道要使用的语法。我决定只删除元素,所以我有如下内容:$document.readyfunction{$group-items.delegateselect.form-select,单击,函数{$this.val;$this option:first.remove;};};委托看起来什么都不像,它只是处理一个更接近事件目标的事件,这样就不需要太多冒泡。@Jamie Hollern在委托调用中,你应该在select.form-select周围加引号,因此,正确的方法应该是“select.form select”@galambalazs,它会根据一组特定的根元素,查找将来添加的新项目,将处理程序附加到与选择器匹配的所有元素的一个或多个事件中。它不必查找或了解他下面的元素。当一个事件发生时,它将该事件的目标作为一个元素,并决定如何处理它。
$('#container_id').delegate('li.myClass', 'click', function () {
});