Javascript 如何获得<;李>;从jquery的悬停函数开始?
我的html内容如下: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> &
<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);
});