我有以下代码:
<form id="form">
<input type="checkbox" name="foo" />
<input type="checkbox" name="bar" />
</form>
<form>
<input type="checkbox" name="foo">
<input type="checkbox" name="bar">
</form>
这个jQuery:
$(document).ready(function(){
$('#form input[name=foo], input[name=bar]').change(function (){
alert('foo');
});
});
现在,如果我查看#form foo,&#39; foo&#39;将显示。如果我选中另一个复选框&#34; foo&#34;,而不是通过&#39; bar&#39;复选框。
我想要的是,只有在ID&#39;形式的表单中才会识别出所采取的行动。我可以通过将此行修改为:
来实现$('#form input[name=foo], #form input[name=bar]').change(function (){
我只是想知道是否有短暂的&#39;语法可能性?
祝你好运
答案 0 :(得分:1)
嗯,不是很短,但你可以避免两次使用#form
:
$('#form').find('input[name=foo], input[name=bar]').change(function () {
略短:
$('#form input').filter('[name=foo], [name=bar]').change(function () {
答案 1 :(得分:1)
如果我是你,我会为他们分配相同的类并为这个类应用jquery:
$('#form .classname').change(function (){
alert('foo');
});
答案 2 :(得分:0)
您可以使用选择#form
,然后在元素上使用find:
示例:
$(document).ready(function(){
$('#form').find('input[name=foo], input[name=bar]').change(function () { alert('foo'); }); });
Fiddler:http://jsfiddle.net/5LH7G/
文档查找:
获取当前匹配组中每个元素的后代 元素,由选择器,jQuery对象或元素过滤。
答案 3 :(得分:0)
您可以按属性值使用选择器:
$('form [name=foo], form [name=bar]').change(function (){
alert('foo');
});