如何使用jQuery查找活动标记格式?

时间:2014-03-25 02:08:42

标签: javascript jquery html

我有一个示例代码的情况如下:

<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"之类的特定标签。是否有任何标准方法可以根据点击事件进行检索?

3 个答案:

答案 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);
});