获取元素的标记名称

时间:2012-02-26 15:46:13

标签: javascript jquery

  

可能重复:
  Can jQuery provide the tag name?

我想在两种不同的情况下在div标签内显示文字:

  1. 当我将鼠标悬停在第一个子元素上时,我希望将文本视为id和标记元素的名称。
  2. 当我将鼠标悬停在其他元素(不是第一个孩子)上时,我希望看到“这不是第一个孩子”的文字。
  3. Example

    HTML:

    <ul id="ul1">ul1
       <li id="aa">1</li>
       <li id="bb">2</li>
       <li id="cc"class="elm">3</li>
       <li id="dd">4</li>
       <li id="ee">5</li>
    </ul>
    <ul id="ul2">ul2
       <li id="ul2-1">1</li>
       <li>2</li>
       <li>3</li>
       <li>4</li>
       <li>5</li>
    </ul><br/>
    
    <div>element-name</div>
    

    CSS:

    div,li{ width:40px; height:40px; margin:10px;
            float:left; border:2px blue solid; 
            padding:2px; }
    ul{ width:100px; height:10px; margin:10px;
            float:left; border:2px blue solid; 
            padding:2px; }
      span { font-size:14px; }
      p { clear:left; margin:10px }​  
    

    jQuery的:

    var $curr = $(".elm");
    $curr.css("background", "#f99");
    
    $("*:first-child")
            .css("background", "#cac")
            .hover(function () {
                  $(this).css("background","green");
    
                $('div').text(this.id+$(this).tagname());
    
                }, function () {
                  $(this).css("background", "#cac");
                });
    

1 个答案:

答案 0 :(得分:2)

您可以使用DOM属性.tagName获取标记nme。这不是一个jQuery属性,它是这样的DOM属性:

$("*:first-child").hover(function () {
    console.log(this.tagName);
});

您可以使用以下内容将ID和标记名称设为div的文本:

$('div').text(this.id+this.tagname);

如果您已经拥有一个jQuery对象,并希望从中获取DOM对象,则可以使用myObj$.get(0)myObj$[0]中的.get(0)或[0]。在事件处理程序中,this已经是发起事件的对象的DOM对象。

除此之外,我不知道你真正要求的是什么。