2012-12-17 36 views
3

我需要使用JQuery选择动态ID,一旦我选择它,然后我需要对它做一些操作。这是我有HTML:选择动态ID JQuery

<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

您的代码有效。 http://jsfiddle.net/2SLpB/ –

+0

更好地使用类。 – zzzzBov

回答

6

,我看到这一点,应该是在$(document).ready();处理程序及其动态ID,以便为这你必须使用.on()处理器选择选择:

$(document).ready(function(){ 
    jQuery(document).on('click', 'input[id^="content_photos_attributes_"]', function() { 
     alert("Image deletion is clicked"); 
    }); 
}); 

试这并看看是否有帮助。

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"); 
}); 
+0

我已经尝试过,但仍然没有运气。 –

+0

是的问题是,当您的jQuery正在执行时,DOM尚未加载 –

+0

我现在正在使用它。谢谢大家。 –