我有一个 div 元素,其中包含一些文本。我需要能够选择:1. div 本身,以及 2. 只有该 div 中的文本
<div class="myDiv">some text</div>
所以我可以按类名选择 div
$(".myDiv").hover(...);
但我对文字有困难。尝试了以下
$(".myDiv").contents().eq(0).text().hover(...);
但没有运气。此外,当我将鼠标悬停在文本上时,我只需要选择该文本,而不是父 div。

我有一个 div 元素,其中包含一些文本。我需要能够选择:1. div 本身,以及 2. 只有该 div 中的文本
<div class="myDiv">some text</div>
所以我可以按类名选择 div
$(".myDiv").hover(...);
但我对文字有困难。尝试了以下
$(".myDiv").contents().eq(0).text().hover(...);
但没有运气。此外,当我将鼠标悬停在文本上时,我只需要选择该文本,而不是父 div。

您只需要以下内容:
var txt = $('.myDiv').text();
尝试这个
我想这就是你需要的
(function findTextNodes(current, callback) {
for(var i = current.childNodes.length; i--;){
var child = current.childNodes[i];
if(3 === child.nodeType)
callback(child);
findTextNodes(child, callback);
}
})(document.getElementById('myDiv'), function(textNode){
$(textNode).replaceWith('<span class="textNode">' + textNode.nodeValue + '</span>');
});
$('.textNode').hover(function(){
$(this).css('color', 'white');
},function(){
$(this).css('color', 'black');
});
var html= $('.myDiv').html(); // Select div itself
var text= $('.myDiv').text(); // To get only the text
如果您尝试添加文本,请尝试:
$(".myDiv").contents().eq(0).innerHTML('YOUR TEXT HERE').hover(...);