2017-02-15 5 views
0

Мне было интересно, может ли кто-нибудь объяснить, почему атрибут spanValue имеет значение null в этой ситуации. В основном я пытаюсь вытащить текст в пределах exampleSpan и присвоить его переменной "spanValue". Как только это будет сделано, я использую jQuery, чтобы найти поле ввода с классом «testClass», и назначить это поле ввода с атрибутом placeholder и значением «spanValue».getElementById в результате null

<span id="exampleSpan" style="display:none;">bla-bla</span> 

     var spanValue = document.getElementById('exampleSpan'.value); 
     jQuery(".testClass").attr("placeholder", spanValue); 

Я тестировал всплывающее окно предупреждения со следующей строкой и правильно возвращал значение. Я предполагаю, что это связано с тем, как я присваиваю значение spanValue значению exampleSpan - это копирование местоположения, а не значение, следовательно, значение null? Любое объяснение и примерный код будут оценены.

alert(document.getElementById('exampleSpan').innerHTML); 

ответ

4

Неверный ). Сначала вам нужно использовать элемент get. Так как элемент является SPAN он не имеет свойство значения, так что используйте textContent свойство

var spanElement = document.getElementById('exampleSpan'); 
var spanValue = spanElement .textContent; 

Использование JQuery

//To get the text 
var spanValue = $('#exampleSpan').text(); 

//To get the HTML 
var spanValue = $('#exampleSpan').html(); 
+0

Спасибо. Теперь я собираюсь спрыгнуть с моста. :) – Tyrx

4

Вы потеряли пар.

var spanValue = document.getElementById('exampleSpan'.value); 

И .value для входов, не пролеты; вам нужно .textContent.

Так оно и должно быть:

var spanValue = document.getElementById('exampleSpan').textContent; 
+0

FYI, 'SPANElement.value' вернет 'undefined' – Phil

+0

, потому что это не вход .. это span –

+0

@Phil Да, я только что заметил это и исправил его - oops ... –

3

должно быть, как это

В JavaScript:

var spanValue = document.getElementById('exampleSpan').innerHTML; 

В Jquery:

var spanValue = $('#exampleSpan').html(); 
+0

ye ах я согласен с тобой @Phil ответ отредактировал спасибо – JYoThI

0

Это должно работать

var spanValue = $("#exempleSpan").text(); 
    jQuery(".testClass").attr("placeholder", spanValue); 
+0

Примечание. '.val()' только для элементов формы – Phil

+0

true, это текст, затем –

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