Передав идентификатор div, могу ли я изменить цель замены текста? - PullRequest
0 голосов
/ 30 марта 2010

Я использую код ниже, чтобы заменить текст внутри 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 Ответ

1 голос
/ 30 марта 2010

Редактировать О, я, очевидно, неправильно понял ваш вопрос. Вот как зациклить текстовые узлы некоторого элемента:

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, для удобства обычно игнорируют текстовые узлы при извлечении, поэтому вам не нужно с ними беспокоиться. ИЛИ доберитесь до них, в зависимости от того, как вы смотрите на это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...