通过传递div id,我可以更改文本替换的目标吗?

时间:2010-03-29 20:16:17

标签: javascript jquery html replace

我使用下面的代码替换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);

1 个答案:

答案 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这样的库的选择器引擎通常会忽略检索时的文本节点,因此不必费心去理解它们。或者找他们,取决于你怎么做。