我正在使用这行代码:
$("#middle_child").contents().filter(function(){return this.nodeType == Node.TEXT_NODE;}).text();
现在,我只是把它放在console.log()中。我正在使用Chrome进行测试和测试value返回为空字符串,但该值应返回“Middle Child”。
这是HTML:
<div id='parent'>
Parent
<div id='oldest_child'>
Oldest Child
<div id='middle_child'>
Middle Child
<div id='youngest_child'>
Youngest Child
</div>
</div>
</div>
</div>
<div id='lone'>Lonely Div</div>
编辑:我试过制作一个jsfiddle&amp;这确实为我提供了一些潜在的见解。在小提琴中我选择了jQuery 1.6.4&amp;它运作得很好。我在我的网站上运行的jQuery版本是1.6.2。有谁知道这可能是我问题的一部分(如果不是全部的话)吗?
答案 0 :(得分:0)
您是否尝试将.text值存储到变量中并进行记录?不知道你的问题在哪里。看看这个JSFiddle,它使用你发布的相同代码。单击该按钮将使用#middle_child中的文本替换#lone中的文本。
var data = $("#middle_child").contents().filter(function () {
return this.nodeType == Node.TEXT_NODE;
}).text();
$('#button').click(function(){
$('#lone').empty().append(data);
});
答案 1 :(得分:0)
我想出了我的问题。
首先,我撒谎,我使用jQuery版本1.9.1由于某种原因它在链接中显示为1.6.2,但文件是1.9.1。
现在,我的问题:我忘了将我的脚本包装在$(document).ready()中。