2016-10-13 2 views
0
var $insertSuccessMessage = $('#insertSuccessMessage'); 
var $successPopup = $('#successPopup'); 
var $successSpan = $('#successSpan'); 

У меня есть DIV тег:Jquery «текст» не работает

<div id="insertSuccessMessage"></div> 

Когда пользователь успешно вводит значение в поле ввода, я пытаюсь получить «успех» всплывающее окно появится под этот тег div так:

$insertSuccessMessage.append('<div class="alert alert-success alert-dismissible" id='successPopup' role="alert"><button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button><span id="successSpan"></span></div>'); 
$successSpan.text("Successfully inserted value!"); 

Сторона: Я использую Bootstrap.

Так появится successPopup, но текст не будет; текст не вставлен между тегами span.

+3

Вам необходимо предоставить значительно больше кода для нас, чтобы помочь вам с этой проблемой. Насколько мне известно, successSpan не определен. –

+1

У вас есть ошибка в коде, смешивая одиночные и двойные кавычки. В вашей строке, начинающейся с '$ insertSuccessMessage.append ...' часть 'id = 'successPopup'' должна быть записана в двойные кавычки. С одинарными кавычками она выходит из строки. – agrm

ответ

7

Вы не определяете $successSpan. Вы должны использовать $('#successSpan') для доступа к элементу с ID

Update после редактирования:

Вы определяете $successSpan слишком рано. Когда вы его определяете, элемент #successSpan еще не существует.

+0

Правильно, но как он получит доступ к insertSuccessMessage в первую очередь? –

+0

Yup, вы правы. Я добавил переменную '$ successSpan' после строки' .append'. Благодарю. – MonkeyOnARock

2
$insertSuccessMessage.append(' 
<div class="alert alert-success alert-dismissible" id='successPopup' role="alert"> 
<button type="button" class="close" data-dismiss="alert" aria-label="Close"> 
<span aria-hidden="true">&times;</span></button><span id="successSpan"> 
</span></div>'); 
$successSpan.text("Successfully inserted value!"); 

вы нарушаете строку, используя неэкранированный апостроф при определении идентификатор атрибута на successPopup.

<div class="alert alert-success alert-dismissible" id='successPopup' role="alert"> 

должен быть

<div class="alert alert-success alert-dismissible" id="successPopup" role="alert"> 

или альтернативно

<div class="alert alert-success alert-dismissible" id=\'successPopup\' role="alert"> 
0

Попробуйте эту модификацию

$insertSuccessMessage.append('<div class="alert alert-success alert-dismissible" id="successPopup" role="alert"><button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button><span id="successSpan"></span></div>'); 
$('#successSpan').text("Successfully inserted value!"); 
0

переключатель Использовать строку.

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

$('#insertSuccessMessage').append('<div class="alert alert-success alert-dismissible" id="successPopup" role="alert"><button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button><span id="successSpan"></span></div>'); 
$('#successSpan').html("Successfully inserted value!"); 

Здесь работают отлично!

1

Есть #successSpan элемент существует в DOM прежде чем вы попытаетесь сослаться на него? После добавления #successSpan к #insertSuccessMessage, вы должны быть в состоянии обратиться к #successSpan так:

$('#successSpan').text("Successfully inserted value!"); 
+0

Да, это была моя проблема. Я имел в виду элемент перед тем, как он существовал в DOM. Он исправлен и работает. – MonkeyOnARock

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