我有一个示例代码的情况如下:
<html>
<head>
<title>Untitled Document</title>
</head>
<body>
<p>
<h1>The header</h1>
<div>
matter ia always matter matter ia <strong>bold matter</strong> matter matter <em>italics matter</em>matter ia <em><strong>bold italics matter</strong></em>lways matter
</div>
</p>
</body>
</html>
当我使用jQuery点击body->p->div->em->strong
时,我只是想检索"bold italics matter"
之类的特定标签。是否有任何标准方法可以根据点击事件进行检索?
答案 0 :(得分:0)
如果要获取单击元素的标记名称,则可以使用:
$('*').click(function(e) {
e.stopPropagation();
console.log($(this).prop('tagName'));
});
<强> Fiddle Demo 强>
答案 1 :(得分:0)
我不完全确定你想要完成什么。如果您尝试检索包含文本的标记本身,我建议您在相关文字周围放置一个<span>
标记并执行onclick="function()"
或简单地将onclick放在右侧在<strong>
标记上。
就JQuery / Javascript而言,如果要检索内容,它看起来像
var foo = document.getElementById.innerHTMl("id");
但是,这要求您在标签中使用ID,这可能是最好的,如果不是 检索标记内容的“标准”方法。
阅读完评论后,我正在编辑这篇文章:
获取父元素的最佳方法是使用JQUery .parent()
函数。我想你会递归地说出这样的事情:
var foo = $("nameofelement").parent();
我希望这更符合您的需求。
答案 2 :(得分:0)
感谢所有人的贡献。最后我用以下代码自己做了。
$(document.body).click(function(e){
var Tags=[], Target=e.target, stat_msg="";
Tags.push(Target.tagName);
while($(Target).parent().get(0).tagName!=="BODY")
{
Tags.push($(Target).parent().get(0).tagName);
Target=$(Target).parent();
}
Tags.push("BODY");
for(i=Tags.length;i>0;i--)
stat_msg=stat_msg+Tags[i-1]+" ";
alert(stat_msg);
});