我有一些像这样的HTML代码:
<input id="fieldname-1" name="field_name[value][1]" value="1" type="checkbox" />
<input id="fieldname-2" name="field_name[value][2]" value="2" type="checkbox" />
<input id="fieldname-3" name="field_name[value][3]" value="3" type="checkbox" />
我想用jQuery访问它:
$('input[field_name]').change( function() { dosomething(); });
我无法通过调用$('.classname')
来添加类字段,因为它是由Drupal的cck模块呈现的,我不想将其添加到主题层。
最好的办法是让我的模块为每个字段添加一个类。但更快的解决方案是知道如何通过jQuery访问这些字段
答案 0 :(得分:3)
您可以使用the attribute equals selector对name
属性进行完全匹配。
$('input[name="field_name[value][2]"]').change(func...
或者,如果您想要所有以<input>
开头的field_name
元素,则可以使用the attribute starts with selector。
$('input[name^=field_name]').change(func...
这将选择<input>
属性以name
开头的所有field_name
元素。
此外,如果选中所有复选框,则可以在选择器中使用:checkbox
而不是input
。
此外,您可以使用相同的方法,但如果需要,可以使用ID属性。
$('input[id^=fieldname]').change(func...
答案 1 :(得分:1)
似乎你需要一个模糊选择器:[name ^ = value] 这样的事情就足够了:
$('[name^=field_name]').each(function(index,element){
$(element).change(function(){})
})