我有一个示例代码的情况,如下:
<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点击"bold italics matter"时,我只是试图检索特定的标签,比如body->p->div->em->strong。是否有任何标准方法可以根据单击事件进行检索?
发布于 2014-03-25 10:24:24
如果您想要获取所单击元素的标记名,则可以使用:
$('*').click(function(e) {
e.stopPropagation();
console.log($(this).prop('tagName'));
});发布于 2014-03-25 10:24:57
我不能完全确定你想要实现的目标。如果您试图检索包含文本的标记本身,我建议您在有问题的文本周围放置一个<span>标记,然后执行onclick="function()"或简单地将onclick放在<strong>标记上。
就JQuery/Javascript而言,如果您想要检索内容,则如下所示
var foo = document.getElementById.innerHTMl("id");然而,这需要你在你的标签中有一个id,这可能是检索标签中内容的最好的,如果不是‘标准’的方法。
在读完你的评论后,我正在编辑这篇文章:获取父元素的最好方法是使用JQUery .parent()函数。我想你可以像下面这样递归地声明:
var foo = $("nameofelement").parent();我希望这更多的是你想要的。
发布于 2014-03-26 16:56:48
感谢大家的贡献。最后,我用下面的代码自己制作了它。
$(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);
});https://stackoverflow.com/questions/22624201
复制相似问题