0

我有一个 div 元素,其中包含一些文本。我需要能够选择:1. div 本身,以及 2. 只有该 div 中的文本

<div class="myDiv">some text</div>

所以我可以按类名选择 div

$(".myDiv").hover(...);

但我对文字有困难。尝试了以下

$(".myDiv").contents().eq(0).text().hover(...);

但没有运气。此外,当我将鼠标悬停在文本上时,我只需要选择该文本,而不是父 div。

在此处输入图像描述

4

4 回答 4

3

您只需要以下内容:

var txt = $('.myDiv').text();
于 2013-08-30T15:42:52.373 回答
1

演示

尝试这个

我想这就是你需要的

(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');
});
于 2013-08-30T16:54:12.263 回答
0
var html= $('.myDiv').html(); // Select div itself
var text= $('.myDiv').text(); // To get only the text
于 2013-08-30T15:43:26.143 回答
0

如果您尝试添加文本,请尝试:

$(".myDiv").contents().eq(0).innerHTML('YOUR TEXT HERE').hover(...);

于 2013-08-30T15:43:29.767 回答