Javascript 在jquery中是否有类似于相邻选择器的东西?
我正在尝试为这段代码使用合适的选择器,但我似乎无法让它工作Javascript 在jquery中是否有类似于相邻选择器的东西?,javascript,jquery,jquery-selectors,Javascript,Jquery,Jquery Selectors,我正在尝试为这段代码使用合适的选择器,但我似乎无法让它工作 <ul id="message-list"> <li class="clearfix message success unread"> <a href="/messages/mark_read/61/" class="message-close"></a> <h4> <strong>
<ul id="message-list">
<li class="clearfix message success unread">
<a href="/messages/mark_read/61/" class="message-close"></a>
<h4>
<strong>
Getting Real: The Smarter, Faster, Easier Way To Build A Successful Web Application
</strong>
has been added to your profile.
</h4>
<form action="/profile/tweet/NIZNQwAACAAJ/" method="post">
<div style="display:none">
<input type="hidden" value="3b723be17da67c5bc54b27a98a660d53" name="csrfmiddlewaretoken">
</div>
<input type="submit" class="button tweet-button" value="Tweet This Book">
</form>
</li>
</ul>
-
实现:构建成功Web应用程序的更智能、更快、更简单的方法
已添加到您的个人资料中。
$('.tweet按钮')。单击(函数(e){
var$list_item=$(this.parent('ul li.message');<------?
var$anchor=$(this).parent('a');/?因为li.message
不是按钮的直接祖先,所以使用搜索DOM树直到到达li.message
:
var $list_item = $(this).parents('li.message');
由于锚点是输入的窗体的同级
父级,因此在选择.parent()
后使用以下命令获取锚点:
var $anchor = $(this).parent().siblings('a');
顺便说一下
a
与表单
不相邻,尽管它是其同级元素之一
- 将
输入
直接嵌套在表单
中是无效的HTML。jQuery仍然可以使用它,但验证器会抱怨(如果您关心这类事情的话)
另一种方式,使用和穿过锚,使用:
var $anchor = $(this).parent().siblings('a');
var $list_item = $(this).closest('li.message');
var $anchor = $(this).closest('form').prev().prev('.message-close');