猿问

请问JQuery怎么取兄弟元素的值?该怎么操作

比如:

<ul>
<li><span class="a_id">1</span><span class="a_title">标题1</span><span class="edit">删除</span></li>
<li><span class="a_id">2</span><span class="a_title">标题2</span><span class="edit">删除</span></li>
<li><span class="a_id">3</span><span class="a_title">标题3</span><span class="edit">删除</span></li>
<li><span class="a_id">n</span><span class="a_title">标题n</span><span class="edit">删除</span></li>
</ul>

如上,我点击随机一行的删除元素class为 edit 的时候怎么使用JQuery获取对应一行的class为a_id的元素取值?
因为我要获取a_id值才能提交给数据库删除。

幕布斯6054654
浏览 216回答 3
3回答

梵蒂冈之花

JQuery中用siblings()方法取兄弟节点的元素。jQuery.siblings() 是返回兄弟姐妹节点,不分前后。比如有如下html页面:<!DOCTYPE html><html><head>&nbsp; <script type="text/javascript" src="/jquery/jquery.js"></script></head><body><ul>&nbsp; &nbsp;<li>list item 1</li>&nbsp; &nbsp;<li>list item 2</li>&nbsp; &nbsp;<li class="third-item">list item 3</li>&nbsp; &nbsp;<li>list item 4</li>&nbsp; &nbsp;<li>list item 5</li></ul><script>$('li.third-item').siblings().css('background-color', 'red');</script></body></html>运行结果:

哈士奇WWW

可以使用$(this).siblings('.a_id'); $(this)是<span class="edit">元素。但是不建议你这样处理代码,这种结构在html结构改变或者内容改变时就会引起js失效(如老板突然不想显示id了,这很正常,用户并不需要了解文章id),推荐的方法是<li&nbsp;data-key="%id%">&nbsp;&nbsp;&nbsp;&nbsp;...Other&nbsp;content&nbsp;&nbsp;&nbsp;&nbsp;<button&nbsp;type="button"&nbsp;onclick="alert($(this).parents('li:first').attr('data-key')">测试</button></li>这行代码的意思是按钮点击的时候寻找父级元素中的第一个li,并获取其data-key属性的值,有点就是只要<li>内部不再有其他<li>那么该选取总是匹配的。简单来说,js代码不要对节点关系太过于依赖,因为实际开发的时候考虑页面美观,html代码总是存在变化的可能,所以声明的时候要尽量宽松一些,否则改了html还要改js。

莫回无

<span class="edit" onclick="del_title(this)">del_title(obj){$($(obj).parent().children().first()).attr("class");}这样就可以了
随时随地看视频慕课网APP

相关分类

Java
JQuery
我要回答