<table>
<tr><td>
<div><img src="1.jpg">text<span class="get">aa</span> <span class="click">Get value</span></div></div></td></tr>
<tr><td>
<div><img src="2.jpg">text<span class="get">bb</span> <span class="click">Get value</span></div></td></tr>
<tr><td><div><img src="1.jpg">text<span class="get">cc</span> <span class="click">Get value</span></div></div>
</td></tr>
</table>
如果点击课程点击,我如何获得最接近的课程值?
$('.click').click(function() {
$(this).each(function() {
$('#sample').text($(document).closest('div').find('.get').text());
});
});
这不起作用,它返回空..
知道为什么吗?
答案 0 :(得分:3)
$('.click').click(function() {
$('#sample').text($(this).siblings('.get').text());
});
以下是工作示例:http://jsfiddle.net/rcXka/
答案 1 :(得分:2)
在你演示的标记中,这应该做你想要的:
$('.click').click(function() {
$('#sample').text($(this).siblings('.get').text());
});
请注意,如果有多个同级get
的兄弟姐妹,这可能无法达到您想要的效果。它会让第一个兄弟回到那个班级,而不是最近的&#34;#34;在标记中 - 你需要提出更严格的定义&#34;最接近&#34;如果有多个兄弟姐妹.get
s。
此外,
$(this).each(function(){ ... });
是一个毫无意义的陈述。这意味着&#34;对匹配元素集合中的每个元素执行一次该函数&#34;,但是匹配元素集合中只有一个元素,即$(this)
。您可以仅使用匿名函数的内容替换它。
.closest()
函数返回与特定选择器匹配的第一个父元素。因此,致电$(document).closet()
- document
没有父母是没有意义的。