2016-07-18 3 views
0

Я пытаюсь обновить текст ссылки с текстом по нажатому элементу. Я думал, что $(this).text(); будет захватывать текст элемента как объект jQuery, но ничего не происходит. Я попробовал написать скрипку, но это дает мне сообщение об ошибке. FiddleИзменить текст ссылки на текст этого элемента

$(".country-label").on("click", function() { 
    var updateCountry = $(this).text(); 
    console.log(updateCountry); 
    $('#country-label').text(updateCountry); 
    localStorage.setItem('CountryName', updateCountry); 
}); 
<a href="#" id="country-label">Canada</a> 
<ul class="dropdown"> 
    <li><label>Select your Country</label></li> 
    <li><a href="#" class="country-label">United States</a></li> 
    <li><a href="#" class="country-label">Australia</a></li> 
    <li><a href="#" class="country-label">France</a></li> 
    <li><a href="#" class="country-label">Germany</a></li> 
</ul> 
+0

[ "Результат методы .text() является строкой *** ***, содержащей сводный текст всех соответствующих элементов."] (Http://api.jquery.com/text /) – Blazemonger

+0

Ваш код выше работает нормально ?! https://jsfiddle.net/eoagyrez/ – eisbehr

+1

Ваш скрипт нуждается в jQuery, и вам нужно передать объект 'event' в обратный вызов. После этого он отлично работает. https://jsfiddle.net/hjd5fq18/3/ – Blazemonger

ответ

0

Вопрос (в вашем Fiddle) является то, что вы передаете строку, updateCountry, вместо переменной. JQuery должен выглядеть следующим образом:

$(".country-label").on("click", function(event) { 
    event.preventDefault(); 
    var updateCountry = $(this).text(); 
    $('#country-label').text(updateCountry); 
    console.log(updateCountry); 
}); 

Вы также не включают в себя Jquery в вашем Fiddle, я обновил его здесь:

Updated Fiddle
+0

Ух, я все время забываю, что теперь я должен добавить jquery в jsfiddle. Спасибо. – Patrick

+0

Ну, он работает на скрипке, но не локально, а значит, на моем конце есть какой-то конфликт. Это все еще решило мою проблему, поэтому отмечая это как ответ. Благодарю. – Patrick

0

Попробуйте это ..

$(".country-label").click(function(event) { 
    event.preventDefault(); 
    var updateCountry = $(this).text(); 

    $('#country-label').text(updateCountry); 
    console.log(updateCountry); 
}); 

И я меняю настройку jsfiddle как:

enter image description here

FIDDLE

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