Создание селектора, указывающего на необработанный текст

#jquery #sizzle

#jquery #шипение

Вопрос:

Выполнение https://github.com/Semantic-Org/Semantic-UI/issues/886#issuecomment-46210448 , я пытаюсь вернуть селектор jQuery, содержащий необработанный текст (без HTML-тегов), но если я это сделаю $("Error: something has gone wrong") , я получу:

 Uncaught object jquery.js:1437
Sizzle.error jquery.js:1437
Sizzle.tokenize jquery.js:2051
Sizzle.select jquery.js:2452
Sizzle jquery.js:843
jQuery.fn.extend.find jquery.js:2668
jQuery.fn.init jquery.js:2776
jQuery jquery.js:76
$.fn.form.settings.templates.error Forms.js:31
$.fn.form.$allModules.each.module.add.errors semantic.js:1638
$.fn.form.$allModules.each.module.invoke semantic.js:1897
(anonymous function) semantic.js:1918
jQuery.extend.each jquery.js:375
jQuery.fn.jQuery.each jquery.js:139
$.fn.form semantic.js:1375
  

Обертывание текста в a <span> устраняет исключение, но есть ли лучший способ?

Ответ №1:

Использование функции jQuery с необработанной строкой, отличной от HTML, не имеет смысла.

http://api.jquery.com/jQuery/#jQuery2

Согласно этой документации, jQuery() функция анализирует HTML, а не XML, и, следовательно, даже не необработанный текст.

Если вам нужно добавить некоторый необработанный текст к элементу, используйте этот .text() метод.

пример:

 $('.someClass').text('Error: Message');
  

Комментарии:

1. Я понимаю, но вы читали, что делает jlukic в github.com/Semantic-Org/Semantic-UI/issues /… ? Имеет ли смысл возвращаться $(html) в этом контексте?

2. Как я уже упоминал, функция jQuery анализирует допустимые строки HTML. и даже больше, если вы используете jQuery 1.9 и выше. jquery.com/upgrade-guide/1.9 /…