如何在jQuery中对现有选择进行选择? 这是给定的HTML
<div id='search'>
<form action='' method='GET'>
<input id="searchbutton" type='submit' name='qs' value='search'>
<div id="searchoptions">
<input type="checkbox" checked="checked" id="search_books book" name="search_books" value="1" /><label for="search_books">book</label>
<input type="checkbox" checked="checked" id="search_movies movie" name="search_movies" value="1" /><label for="search_movies">movies</label>
</div>
</form>
</div>
jQuery部分:
$('#search').each(function(){
//do stuff
$(this).click(function(){
alert('checkbox clicked');
});
});
诅咒点击功能会在点击div时触发。 但是如果单击该复选框,我希望它被触发。 我可以这样做 $('#search input:checkbox') 但是我需要先用#search做一些事情。 那么如何将选择器附加到$(this)?
e.g。 $(this'input:复选框')
对不起,如果这是一个愚蠢的问题。
答案 0 :(得分:2)
在这种情况下,您会使用.find()
,例如:
$(this).find(':checkbox');
//equiavlent to $('#search :checkbox')
还有很多其他tree traversal methods也是这样。
你也可以这样做:$(':checkbox', this)
但是这真的只是由jQuery转换为上面的内容,所以最好自己做IMO。
答案 1 :(得分:1)
使用.find()
。
另一方面,我没有理由在.each()
上使用$('#search')
,因为该选择器只返回1个元素,因为HTML元素ID必须是唯一的。
答案 2 :(得分:1)
定义一个变量以包含结果集。
var $myVar = $('#search');
然后使用.add()方法。
$myVar = $myVar.add($('#search input:checkbox'));
$myVar.click(function(){
alert('div or checkbox clicked');
});
答案 3 :(得分:0)
您可以使用
$(":checkbox", $(this));
其中第二个参数是搜索与选择器匹配的元素的上下文。
所以
$(":checkbox", $(this)).click(function(){
alert('checkbox clicked');
});
答案 4 :(得分:-1)
使用您的parent()和children()方法。您可以将选择器指定为参数。
$(this).children(':checkbox');