2

我有一些这样的 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 访问这些字段

4

2 回答 2

3

您可以使用属性等于选择器对属性进行完全匹配name

$('input[name="field_name[value][2]"]').change(func...

或者,如果您想要所有<input>以开头的元素,则field_name可以使用以 selector 开头的属性

$('input[name^=field_name]').change(func...

这将选择属性以 开头的所有<input>元素。namefield_name

此外,您可以:checkbox在选择器中使用,而不是input它们都是复选框。

此外,如果需要,您可以使用相同的方法,但使用 ID 属性。

$('input[id^=fieldname]').change(func...
于 2010-10-18T14:42:55.030 回答
1

您似乎需要一个模糊选择器: [name^=value] 这样的东西可能就足够了:

$('[name^=field_name]').each(function(index,element){
  $(element).change(function(){})
})
于 2010-10-18T14:45:28.343 回答