jQuery 如何指定现有选择器
如何在 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 做一些事情。 那么如何将选择器附加到 $(this) 呢?
例如 $(this'input:checkbox')
抱歉,如果这是一个愚蠢的问题。
How do I do a selection on a existing selection in jQuery?
This is the given 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>
The jQuery part:
$('#search').each(function(){
//do stuff
$(this).click(function(){
alert('checkbox clicked');
});
});
Of curse the click function triggers if the div gets clicked.
But I'd like it to get triggered if the checkbox is clicked.
I could just do
$('#search input:checkbox')
but I need to do some stuff with #search first.
So how to I append a selector to $(this)?
e.g. $(this'input:checkbox')
Sorry if it's a fools question.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
在这种情况下,您可以使用
.find()
,例如:还有许多其他类似的树遍历方法。
你也可以这样做:
$(':checkbox', this)
但这实际上只是由 jQuery 在幕后转换为上面的内容,所以在我看来最好自己做。You would use
.find()
in this case, for example:There are many other tree traversal methods like this as well.
You can also do:
$(':checkbox', this)
but that's really just converted to the above by jQuery under the covers, so better to do it yourself IMO.使用
.find()
。另一方面,没有理由在
$('#search')
上使用.each()
因为该选择器只会返回 1 个元素,因为 HTML 元素 ID 必须是独一无二的。Use
.find()
.On another note, there's no reason to use
.each()
on$('#search')
because that selector will only ever return 1 element, since HTML element IDs must be unique.定义一个变量来包含您的结果集。
然后使用 .add() 方法。
Define a variable to contain your result set.
Then use the .add() method.
您可以使用
第二个参数是搜索与选择器匹配的元素的上下文。
所以
You can use
where the second parameter is the context on which to search for elements which match the selector.
So
使用你的parent()和children()方法。您可以将选择器指定为参数。
use your parent() and children() methods. You can specify selectors as arguments.