我需要使用JQuery选择动态id,一旦我选择它,我就需要对它做一些动作。这是我的HTML:
<input id="content_photos_attributes_1355755712119_image" name="content[photos_attributes][1355755712119][image]" size="30" type="file">
请注意id值,文本总是相同但数字会更改(我无法控制该更改)。
我需要做的是点击该元素创建。这是我到目前为止所得到的,但它无法正常工作。
<script type="text/javascript">
jQuery.noConflict();
jQuery("input[id *= 'content_photos_attributes_']").click(function() {
alert("Image deletion is clicked");
});
</script>
我是按ID还是按名称选择该元素没有任何区别。
答案 0 :(得分:6)
正如我所看到的,它应该在$(document).ready();
处理程序中,并且它是一个动态id,所以为此必须使用.on()
处理程序来选择选择器:
$(document).ready(function(){
jQuery(document).on('click', 'input[id^="content_photos_attributes_"]', function() {
alert("Image deletion is clicked");
});
});
试一下,看看是否有帮助。
答案 1 :(得分:0)
尝试以 ^=
选择器开始:
$("input[id^='content_photos_attributes_']").click(function() {
alert("Image deletion is clicked");
});
除非你有点'',否则你不需要属性比较中的引号。字符。这也可行:
$("input[id^=content_photos_attributes_]").click(function() {
alert("Image deletion is clicked");
});