我的目标是让jQuery查看我刚刚点击的元素(例如ap或li标签),然后将样式应用于该元素的所有实例(因此所有p标签都在页)。
到目前为止,这是我的代码,但它只将样式应用于单击的单个元素。
$("article *", document.body).click(function (e) {
e.stopPropagation();
selectedElement = $(this);
$(selectedElement).css("border", "1px dotted #333")
});
非常感谢任何帮助或建议!
答案 0 :(得分:3)
$('article *',document.body).click(
function(e){
e.stopPropagation();
var selectedElement = this.tagName;
$(selectedElement).css('border','1px dotted #333');
}
);
JS Bin的演示,虽然我使用了通用选择器(因为我只发布了几个列表(一个ol
另一个ul
)。
上面的代码是为响应@Peter Ajtai的评论而编辑的,并且链接的JS Bin演示更新以反映变化:
为什么在查看tagName之前绕过块一次? var selectedElement = this.tagName;怎么样。它也是e.stopPropagation(),因为你正在调用一个方法。
答案 1 :(得分:2)
我不知道在article
元素下嵌套了多少元素,但使用*
将点击事件处理程序添加到所有中似乎很浪费。
相反,只需将处理程序添加到article
,然后获取已点击的tagName
的{{1}}。
e.target
这将更多更有效。