我使用下面的代码替换div中的文本。但我需要遍历一个特定的div,而不是页面上的所有内容,即div的文本节点......
我只是不明白如何在下面的代码中引用div。
(function (parent) {
var childs = parent.childNodes;
// if there are children to this
if (childs && childs.length) {
// loop through each text node
for (var i = 0, node; node = childs[i]; i++) {
根据要求提供更多代码:
function npup(parent) {
var children = parent.childNodes, child;
for (var idx=0, len=children.length; idx<len; ++idx) {
child = children.item(idx);
alert(child);
if (child.nodeType===3) {
// it is a text node. do magic.
for (var x = 0; x < en_count; x++) {
// what is the current content of the current node
var value = content(child);
// get current english phrase
var from = en_lang[x];
// get current other language phrase
var to = other_lang[x];
if (typeof(from) != 'undefined' && value.match(from)) {
content(node, value.replace(from, to));
}
}
}
}
} var theDiv = document.getElementById('mydiv');
npup(theDiv);
答案 0 :(得分:1)
编辑哦,我显然误解了你的问题。以下是如何遍历某个元素的文本节点:
function npup(parent) {
var children = parent.childNodes, child;
for (var idx=0, len=children.length; idx<len; ++idx) {
child = children.item(idx);
if (child.nodeType===3) {
// it is a text node. do magic.
}
}
}
我用普通的javascript编写了这个,因为你的代码示例是普通的js。为方便起见,像Prototype和jQuery这样的库的选择器引擎通常会忽略检索时的文本节点,因此不必费心去理解它们。或者找他们,取决于你怎么做。