2013-06-11 4 views
1

Я пытаюсь добавить текст в div, а затем проверить, добавлен ли он с помощью консоли FF. Код вхожу в консоли является:Проверьте, был ли добавлен текст в элемент с консолью Firefox.

jQuery('<div id="method" style="display:none">').append("jonesy" + ','); 
jQuery('<div id="method">').text() 

Я ожидаю, чтобы получить строку Джонси, вернулся, но я получаю отображается пустая строка. Где моя ошибка?

ответ

3

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

jQuery('<div id="method" style="display:none">jonesy,</div>').appendTo('body'); 
jQuery('#method').text(); 
  • Создание dyanmic DIV с помощью jQuery('<div id="method" style="display:none">jonesy,</div>').
  • Приложить вновь созданного DIV в DOM, используя .appendTo('body')

FIDDLE DEMO #1

Вы можете сделать в лучшую сторону, как:

// Create a new dynamic div 
var $div = jQuery('<div/>', { 
    id: 'method', 
    style: 'display:none', 
    text: 'jonesy,' 
}); 

// Append the new div to the DOM 
$div.appendTo('body'); 

// Check the console for the text 
console.log(jQuery("#method").text()); 

FIDDLE DEMO #2

1

Ваш селектор немного от моего друга:

jQuery("div#method").append("jonesy" + ","); 
console.log(jQuery("#method").text()); 
+0

http://jsfiddle.net/j08691/5aYU2/ – j08691

6

синтаксис jQuery('<div id="method">') создает новый DIV каждый раз. Добавлен только первый.

Что вы хотите, скорее всего, так;

var myDiv = jQuery('<div id="method" style="display:none">'); // save the div in a var 
myDiv.append("jonesy" + ','); // append to it 
myDiv.text(); // read from the same DIV 
1

Есть две проблемы. Во-первых, каждый вызов jQuery здесь создает отдельный div.

Чтобы обратиться к ранее созданному DIV, ссылаться на него при помощи селектора, не создаём новый:

jQuery('<div id="method" style="display:none">').text("jonesy" + ','); 
jQuery('#method').text() 

, но это не будет действительно работать, либо, так как ДИВ никогда не был добавлен документ. Вторая строка ищет совпадения в пределах документа.

Try:

jQuery('<div id="method" style="display:none">'). 
    text("jonesy" + ','). 
    appendTo($(document.body)); 
jQuery('#method').text() 
+0

.appendTo() может принимать собственный объект DOM в качестве аргумента, не нужно wrap 'document.body' в' $() '- также, видя, что вы так цепляетесь, почему бы не продолжить цепочку, а не выбирать ее по id? – xec

+0

Я следовал исходной строке кода - похоже, что OP находится в консоли, выясняя, как работают селекторы и создание. В реальном коде я бы сделал именно это ... но это более информативно. –

1

я могу определить две проблемы:

  1. Если вы хотите feed the jQuery() function with HTM L, она должна быть полной автономной HTML. <div id="method"></div> правильный, <div id="method"> нет.
    Редактировать: просто протестирован и ваш код работает нормально.

  2. Этот синтаксис создает новый элемент. Если вы хотите найти существующий элемент, вам нужно использовать селектор CSS. Однако ваш элемент не прикреплен к DOM и не сохраняется в переменной, поэтому нет простого способа достичь этого.

Я полагаю, вы хотите что-то вроде этого:

var div = jQuery('<div id="method" style="display:none"></div>').append("jonesy" + ','); 
div.text(); 
Смежные вопросы