2013-08-07 3 views
0

У меня есть следующий HTML-код:Невозможно получить текстовое значение отдельных элементов JQuery

<p id="1">Hello there.</p> 
<p id="2">To be removed.</p> 

Однако я Отсоединение <p id="2"> элемента и он исчезает, как это должно быть. Однако я не могу получить текстовое значение внутри этого элемента <p> после вызова функции jQuery detach(). Код JQuery выглядит следующим образом:

$(document).ready(function() { 
    var p = $('#2').detach(); 
    alert($('#2').val()); 
}); 

Я не могу получить текстовое значение появится в окне предупреждения послеdetach() было названо, не раньше. Может кто-нибудь, пожалуйста, помогите мне. Спасибо.

ответ

3

Две вещи:

  1. p элементы не имеют значения (это для полей формы), они имеют содержание. Использовать text или html, а не val.

  2. Вы пытаетесь найти его во второй раз, но, конечно, его не найдут. Вам нужно использовать созданную переменную.

    $(document).ready(function() { 
        var p = $('#2').detach(); 
        //  v----- use `text` or `html` 
        alert(p.text()); 
        // ^---- use the variable `p`, don't try to look it up a second time 
    }); 
    

Примечание стороны: #2 является недействительным id селектор. idcannot start with a digit.

+1

Если это не будет 'предупреждение ($ (р) .text()); – Tomer

+0

Я пробовал использовать текст. Но как бы получить это текстовое значение после того, как detach() был вызван этим элементом? – blackpanther

+0

@ ftom2: Да, только что увидел и исправил это. –

0

Вы не можете найти элемент в снятом вами документе.

Используйте ссылку на объект JQuery, содержащий элемент, который вы сохранили в переменной p:

var p = $('#2').detach(); 
alert(p.text()); 

Демо: http://jsfiddle.net/jWb49/

Смежные вопросы