Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何获得<;李>;从jquery的悬停函数开始?_Javascript_Jquery_Html_Hover - Fatal编程技术网

Javascript 如何获得<;李>;从jquery的悬停函数开始?

Javascript 如何获得<;李>;从jquery的悬停函数开始?,javascript,jquery,html,hover,Javascript,Jquery,Html,Hover,我的html内容如下: <ul> <li class=folder>Main <ul> <li class=folder>1st fldr <ul> <li> child1 <li> child2 </ul </ul> &

我的html内容如下:

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

</ul>

但是我没有得到任何人可以帮助我的值。

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

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

像这样使用

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

</ul>
  • Main
    • 1st fldr
      • 孩子1
      • 孩子2
$('ul li.folder span').mouseover(函数(){ 警报($(this.text()); });

克隆
根元素,然后找到其子元素,然后删除它们。唯一剩下的就是当前元素。试试-

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

我不能把span放在这里,这是动态生成我不明白,我怎么能写它悬停方法这里是什么,为什么只有3,这不是我仅有的html。这是一个动态的内容。这是dynatree。所以我可能有很多文件夹,下面有很多孩子。3是节点类型文本。如果内容是动态的,那么上面的事件应该可以工作。如果动态添加文件夹,则必须使用事件委派。注意:li标记未关闭。。li标签未关闭和ul标签的副本also@Lucky您的编辑对他的HTML代码进行了重大更改,这可能是他出现问题的原因。像这样的剧烈变化应该建议OP,但未经他的同意,不得在中编辑。@DarkAshelin,正如您所看到的,您回滚的修改后的编辑是无效的html(可能会起作用),并且
  • 标记未关闭,类元素缺少
    ,我进行了编辑以使其有效markup@Lucky一般来说(不仅仅是在这种情况下),代码中有意义的更改通常不是一个好的编辑,可能应该作为答案或注释发布。我想举个例子。有人编辑了他的代码(并改进了格式)但实际上也删除了导致问题开始的小错误。更新了答案。只需更改事件。悬停触发了两次。因此更改为mouseneter。你能看看我的实际问题吗。你的解决方案对我来说有些问题。我不知道我的实际jsp中发生了什么。我的jsp太乱了。我无法找到任何解决方案在我的项目中不起作用。但所有都在fiddel中工作。请检查那里的html。许多缺少的标记。@Raghu修复该html。
    $('ul li.folder').hover(function () {
           alert($(this).find('span').text());
    });
    
        <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());
        });
    
    $('ul li.folder').mouseenter(function () {
       var text = $(this).clone().children().remove().end().text();
       alert(text);
    });