我有以下HTML:
<div class="a">
<div class="b"></div>
<div class="x"></div>
<div class="y"></div>
<div class="c">
<div class="d"></div>
</div>
</div>
当我拨打$(".d").click(function(){
时,如何选择div类.b?我想相对地这样做,而不使用.b
类名。
答案 0 :(得分:1)
标准方法:
$('.module').on('click', '.button', function () {
$('.other', this)...
});
其中:
.module
是页面组件的最外层(包装器)元素.button
是您正在收听其点击操作的组件中的元素.other
是您在点击处理程序中选择的元素。请注意:
另外,请注意其他答案如何对jQuery中的元素关系进行硬编码(那些parent()
和sibling()
调用)不是一个好方法。
答案 1 :(得分:0)
$(".d").click(function(){
$(this).parent().prev('div'); // or $(this).closest('.b');
});
OP发表评论后更新
$(".d").click(function(){
$(this).parent().parent().children().first();
});
参考
答案 2 :(得分:0)
您必须找到parent
之前的sibling
$(".d").click(function(){
$(this).parent().prev();
})
如果要在当前父级之前设置第三个兄弟,只需追加三次prev() 离。
$(".d").click(function(){
$(this).parent().prev().prev().prev();
})
答案 3 :(得分:0)
这取决于他们的相对位置是否始终保持不变。
如果b总是成为父母之前的兄弟姐妹,你可以选择以下内容:
$('.d').on('click', function(){
var b = $(this).parent().prev();
});
如果b总是父母的父母的第一个孩子:
$('.d').on('click', function(){
var b = $(this).parent().parent().find(">:first-child");
});
答案 4 :(得分:0)
$(.d).click(function(){
$(this).parent().siblings('.b') //in this way
})
有很多方法可以为他们执行此操作,您可以参考jquery网站 http://api.jquery.com/category/selectors/
答案 5 :(得分:0)
$(".d").click(function(){
alert($('div[class="a"]').children(":first").text());
});
这将选择带有b类的元素。
这也可行
$(".d").click(function(){
alert($(this).parent().parent().children(":first").text());
});
即便如此
$(".d").click(function(){
alert($(this).parent().prev('div').text());
});