【问题标题】:How can I filter some content added dynamically with jQuery?如何过滤一些使用 jQuery 动态添加的内容?
【发布时间】:2013-08-12 09:36:57
【问题描述】:

首先,对不起我的英语,我还在学习:)。

我的问题是下一个,我用 jQuery 添加了一些 HTML 内容,特别是这些 inputs:

<td id="date"><input type="text" id="input_1" class="select" /></td>
<td id="date"><input type="text" id="input_2" class="select" /></td>
<td id="date"><input type="text" id="input_3" class="select" /></td>
<td id="date"><input type="text" id="input_4" class="select" /></td>
<td id="date"><input type="text" id="input_X" class="select" /></td>

输入的数量取决于我的数据库中有多少寄存器。

另一方面,我在 jQuery 中有这段代码,用于相同的内容,但它不是动态添加的。添加以上内容后,我尝试执行此脚本:

$('input')
    .filter(function() {
    return this.id.match(/input_./);
})
.foo({
    ....
});

当我尝试将相同的脚本与动态内容一起应用时,它不起作用,它不匹配任何东西。

我阅读了 delegate()live() 方法,但我不明白如何在我的情况下使用它们,因为我看到的所有示例都是针对处理程序事件的。

任何人都知道我该如何解决这个问题。

提前致谢。

【问题讨论】:

  • 最好单独命名您的输入或将其命名为“fecha_fin[]”,否则您将遇到回发问题。然后需要更清楚地了解您尝试过滤的内容和时间...例如:单击选项 A 时,这应该是过滤器或在页面加载时需要过滤...
  • 感谢您的建议,我删除了输入的名称,因为我真的不需要它们。关于脚本,我打算获取所有输入,在foo() 函数中一一处理。正如我所说,该脚本适用于我,但仅适用于静态内容。

标签: dynamic filter jquery jquery-delegate


【解决方案1】:
$(document).on('change', 'input[id^=input_]', function() {
    /* Do stuff */
});

所以你可以这样做demo

// Wrap inside a document ready
// Read .on() docs (To ensure the elements...bla bla)
$(document).ready( function () {

    input_index = 0;

    setInterval(addInput, 1000);

    $(document).on('change', 'input[id^=input_]', function() {
        $(this).val($(this).attr('id'));
    });

    function addInput () { 
        $('<input type="text" id="input_'+input_index+'"/>')
          .appendTo('#empty')
          .change();   // <============================ Pay attention to this
        input_index++;
    }

});

【讨论】:

  • 我尝试使用它,但它不起作用。当文档更改(添加动态内容后)脚本不执行时,我可以在调试工具中检查它,并且仅在我使用浏览器加载页面时才有效。
  • 是的,这行得通!但是有一点不同,函数addInput()添加&lt;input&gt;元素,在我的例子中我添加&lt;td&gt;&lt;input&gt;&lt;/input&gt;&lt;/td&gt;。我意识到,如果不是放在change 处理程序中的相同类型的元素,则不会触发。如何更改脚本以识别元素对,但只在处理程序中获取输入元素,就像在脚本中一样。谢谢!
  • 是的,它有效!当然有.find()的指令我可以做到,你是高手!感谢您的帮助。
猜你喜欢
  • 2011-03-30
  • 1970-01-01
  • 2012-12-25
  • 1970-01-01
  • 1970-01-01
  • 2011-04-05
  • 2011-05-24
  • 2014-03-11
  • 1970-01-01
相关资源
最近更新 更多