В jQuery $ ('body') может выбирать элемент body, но $ ('body') может быть похож на $ ('некоторый текст'), так как отличить? - PullRequest
8 голосов
/ 21 июня 2010

Причина в том, что мы можем сделать

$('<div>some text</div>').prependTo('#someDiv')

, поэтому это тоже можно сделать:

$('some text').prependTo('#someDiv')

, но мы не можем изменить some text на body?body так же хорош, как и любой текст ...

(код выше добавляет some text в div с идентификатором someDiv, так что если я хочу добавить слово body вdiv?)

но $ ('body') становится селектором для элемента body ... так что есть правило, которое говорит, что мы можем использовать любой текст в качестве HTML-кода, если это не такназвание элементов HTML?

Ответы [ 4 ]

8 голосов
/ 21 июня 2010

В основном это никогда не действует:

$('generic text here, *not* a selector or HTML');

Это должно всегда быть либо селектором (поиск элемента), либо HTML (создание элемента (ов)), вы можете просмотреть API для $() здесь .

Вы хотите использовать один из других методов вставки DOM * здесь 1012 *, .prepend() в данном случае:

$('#someDiv').prepend('any text or html here is valid, <b>Hey look bold</b>.');
1 голос
/ 21 июня 2010

Если он содержит теги html, то он рассматривается как html (за исключением того, что он удаляет текст перед первым тегом и после последнего).например, $("<div>some text</div>").В противном случае он рассматривается как селектор, например, $("some text").

0 голосов
/ 21 июня 2010

Это потому, что jQuery рассматривает селекторы перед созданием фрагментов HTML. «body» является допустимым селектором и будет использоваться как селектор.

Лучше использовать функцию prepend для добавления HTML или текста к узлу:

 $('#someDiv').prepend('some text');

Значение, переданное prepend, не используется селектором, и вы можете добавить текст «body».

0 голосов
/ 21 июня 2010

Работа с текстовыми узлами не является сильной стороной JQuery.Вы можете использовать обычные методы DOM:

$('#someDiv')[0].appendChild(document.createTextNode("body"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...