如何从jquery的悬停函数中获取<li>的值?

时间:2015-05-07 07:49:28

标签: javascript jquery html hover

我的html内容如下,

<ul>
    <li class=folder>Main
      <ul>
         <li class=folder>1st fldr
            <ul>
                   <li> child1
                   <li> child2
            </ul
      </ul>

</ul>

现在我想得到folders(main,1st fldr)的值,因为我的jquery悬停方法如下,

$('ul li.folder').hover(function () {
       alert($(this).text());
});

但我没有得到任何人帮助我的价值。

4 个答案:

答案 0 :(得分:3)

您需要从悬停元素中选择文本节点:

$('ul li.folder').hover(function () {
 alert($(this).contents().filter(function() {
   return this.nodeType === 3; //get text nodes
  }).text());
});

<强> Working Demo

答案 1 :(得分:1)

    <ul>
        <li class=folder><span>Main</span>
        <ul>
            <li class=folder><span>1st fldr</span>
            <ul>
                <li> child1</li>
                <li> child2</li>
            </ul>
        </ul>

    </ul>


    $('ul li.folder span').mouseover(function () {
        alert($(this).text());
    });

http://jsfiddle.net/15v26hko/

答案 2 :(得分:0)

像这样使用

<ul>
    <li class=folder>Main
      <ul>
         <li class=folder><span>1st fldr</span>
            <ul>
                   <li> child1
                   <li> child2
            </ul
      </ul>

</ul>

这样的文件夹的访问值
$('ul li.folder').hover(function () {
       alert($(this).find('span').text());
});

答案 3 :(得分:0)

clone根元素,然后找到它们的childrenremove。唯一剩下的就是当前的元素。试试 -

$('ul li.folder').mouseenter(function () {
   var text = $(this).clone().children().remove().end().text();
   alert(text);
});

Demo