Возврат текстовых узлов

0

Я использую эту строку кода:

$("#middle_child").contents().filter(function(){return this.nodeType == Node.TEXT_NODE;}).text();

Пока, я просто помещаю это в console.log(). Я использую Chrome для тестирования и возвращает значения как пустую строку, но значение должно возвращать "Средний ребенок".

Это 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>

EDIT: Я пытался сделать jsfiddle, и это дало мне некоторую потенциальную информацию. В скрипке я выбрал jQuery 1.6.4, и он работал отлично. Версия jQuery, которую я запускаю на моем сайте, - 1.6.2. Кто-нибудь знает, может ли это быть частью (если не всем) моей проблемы?

  • 0
    Сделать jsfiddle.net
Теги:
dom
nodes
textnode

2 ответа

0
Лучший ответ

Я понял свою проблему.

Во-первых, я соврал, я использую jQuery версии 1.9.1 по какой-то причине, она отображается как 1.6.2 в ссылке, но файл 1.9.1.

Теперь, моя проблема: я забыл обернуть свой скрипт внутри $ (document).ready().

0

Вы пытались хранить значение.text в переменной и регистрировать его? Не знаете, куда входит ваша проблема. Взгляните на этот JSFiddle, он использует тот же код, что и вы. Щелчок по кнопке заменит текст внутри # lone текстом из #middle_child.

http://jsfiddle.net/m5xPd/

 var data = $("#middle_child").contents().filter(function () {
    return this.nodeType == Node.TEXT_NODE;
 }).text();

 $('#button').click(function(){
     $('#lone').empty().append(data);
 });
  • 0
    В JSFiddle все работает нормально, но на моем сайте это не работает. Лучшая теория, которая у меня есть для этого, заключается в том, что мой сайт использует jQuery 1.6.2, а JSFiddle ближе всего к этому - 1.6.4. Тем не менее, я ожидаю, что получу какую-то ошибку, а не возвращаемую пустую строку. Вот JSFiddle, который я сделал: jsfiddle.net/6q5Lx
  • 0
    Можете ли вы попробовать заменить вашу версию jQuery на новую и посмотреть, исправится ли проблема? Есть ли причина, по которой вы застряли на 1.6.2?
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню