我想做的是这样的事情:
$(".chat-wrapper").on("click", ".chat-wrapper li", function(){
$(this.name).hide();
});
结构将是:
<ul class="chat-wrapper">
<li><img src=""/><a class="name">Name 1</a><div class="body"></div></li>
<li><img src=""/><a class="name">Name 2</a><div class="body"></div></li>
</ul>
因此,当您单击名称2时,它将仅隐藏该名称类。 (我的li元素里面有超过1个类,我希望能够选择我想要的那个) (这不是我需要这样做的实际原因,但这是一个简单的例子)
答案 0 :(得分:1)
我仍然不确定你在问什么,但似乎你在<a>
内有多个<li>
,并希望隐藏只是被点击的那个。
这是你想要的吗?
$(".chat-wrapper").on("click", ".chat-wrapper li", function(e){
$(e.target).hide(); // `e.target` is the child element (<a>) you clicked on.
// `this` would be the entire <li>, because that's
// what the event is bound to.
});
编辑:要仅隐藏具有特定类的元素,您可以执行以下操作:
$(".chat-wrapper").on("click", ".chat-wrapper li", function(){
$('.name', this).hide(); // This is the same as $(this).find('.name')
// `this` is the <li> that was clicked on
});
答案 1 :(得分:0)
要完成这项工作,您只需要根据属性值
建立一个类选择器$(".chat-wrapper").on("click", ".chat-wrapper li", function(){
var sel = "." + $(this).attr('class');
$(sel).hide();
});
注意:当Rocket指出锚是否可以有多个类时,您需要考虑是否对所有类,一些类或仅一个类执行操作。以下是为所有类
执行此操作的代码$(".chat-wrapper").on("click", ".chat-wrapper li", function(){
var all = $(this).attr('class').split(' ');
var i;
for (i = 0; i < all.length; i++) {
var sel = '.' + all[i];
$(sel).hide();
}
});
答案 2 :(得分:0)
我对.on()函数不太熟悉。但我认为你要做的是以下几点。
$(".chat-wrapper > li").on("click", function(){
$(this).hide();
});