如何将javascript应用于使用append()创建的元素?

时间:2012-10-16 17:14:24

标签: javascript jquery dom append element

我有一个由append()显示的表单。表单包含需要使用js(自动完成功能)调整的输入。 这是它:

function addForm() {    
<!-- function code here-->
...
html += '  <table class="form">';
html += '    <tr>';
html += '      <td>Entry product</td>';
html += '      <td><input type="text" name="product" value="" /></td>';
html += '    </tr>';
html += '    <tr>';
html += '    <td>&nbsp;</td>';
html += '    <td><div id="featured-product" class="scrollbox">';
html += '    </div>';
html += '    <input type="hidden" name="featured_product" value="" /></td>';
html += '    </tr>';
html += '  </table>';

$('#form').append(html);

}


$('input[name=\'product\']').autocomplete({
<!-- function code here-->
}

但是自动完成功能不能以这种方式工作。据我所知,这是因为append(html)没有将html存储到DOM。它通常的HTML格式工作正常,但我不能这样做。我需要按照描述创建表单。所以问题是:

如何将js应用于不在DOM中的元素?
或者如何使用js将该元素执行到DOM? 也许我需要使用smth,如append()?

感谢。

1 个答案:

答案 0 :(得分:2)

输入此代码:

$('input[name=\'product\']').autocomplete({
 <!-- function code here-->
});

在附加html的代码之后。问题是,当尝试进行此绑定时,DOM不包含这些元素

您还可以使用.on功能来应用此功能:

$('input[name=\'product\']').on("autocomplete",function(){
 <!-- function code here-->
});