Как получить HTML-элемент из строки с помощью jQuery

Я ищу способ получить элемент HTML из строки, содержащей HTML. Можно ли использовать селектор jQuery для этого?

В основном у меня есть функции JavaScript, которые получают всю страницу с сервера, но мне нужен только один элемент с этой страницы.

заранее спасибо

 Sarfraz20 сент. 2010 г., 20:01
Можете ли вы поделиться, что именно вы подразумеваете под строкой и как это выглядит?
 Guffa20 сент. 2010 г., 20:05
Немного неясно, что у вас есть. Содержит ли строка HTML-код для одного элемента или содержит код для нескольких элементов, один из которых вы хотите получить?

Ответы на вопрос(4)

Просто используйте $ .filter

var html = "<div><span class='im-here'></span></div>"
var found = $(html).filter(".im-here")

Просто оберните HTML-текст в функцию $. подобно

$("<div>I want this element</div>")
 salmanhijazi12 мая 2015 г., 18:54
Спасибо вам большое!
 jamzsabb19 дек. 2013 г., 05:31
Я люблю тебя за то, что ты сказал мне, что это возможно. Это просто решило все мои проблемы.
 Jay Momaya30 апр. 2018 г., 16:29
@KingErronnneous У меня есть строка '(parseFloat ($ ("# assumptions_table"). Find ("[name = \' предположения [3] [7] \ ']"). Val ()) || 0) + ( (parseFloat ($ ( "# assumptions_table"). найти ( "[имя = 'предположения [3] [7] \' \]"). вал ()) || 0) * ((parseFloat ($ ( "# assumptions_table ") .find (" [name = \ 'предположения [4] [8] \'] "). val ()) || 0)) / 100) ', здесь я хочу найти, какие элементы участвуют, и как это сделать я понимаю

Если вы загружаете страницу динамически с сервера, вы можете настроить таргетинг только одного элемента на загруженной странице, используя следующую форму с.load()

$(selectorWhereToShowNewData).load('pagePath selectorForElementFromNewData');

Например:

$('#result').load('ajax/test.html #container');

Куда:
#result где загруженная часть страницы будет отображаться на текущей странице
ajax/test.html URL, на который отправляется запрос к серверу
#container это элемент на странице ответа, который вы хотите отобразить. Только то, что будет загружено в элемент#result, Остальная часть страницы ответа не будет отображаться.

 Jay Momaya30 апр. 2018 г., 16:29
у меня есть строка '(parseFloat ($ ("# assumptions_table"). find ("[name = \' предположения [3] [7] \ ']"). val ()) || 0) + ((parseFloat ($ ( "# assumptions_table"). найти ( "[имя = 'предположения [3] [7] \' \]"). вал ()) || 0) * ((parseFloat ($ ( "# assumptions_table") .find ("[name = \ 'assumptions [4] [8] \']"). val ()) || 0)) / 100) ', здесь я хочу узнать, какие элементы задействованы, тогда как я могу получить тот
Решение Вопроса

Да, вы можете превратить строку в элементы и выбрать элементы из нее. Пример:

var elements = $(theHtmlString);
var found = $('.FindMe', elements);
 Riz03 янв. 2017 г., 15:15
Если ваш HTML имеет точку (.) Или одинарную кавычку ('), это не сработает
 Nabi K.A.Z.20 мая 2018 г., 09:33
Кто-нибудь знает, почему не работает этот код:jsfiddle.net/NabiKAZ/zwdkg7vv
 Peter Ajtai20 сент. 2010 г., 21:55
Это называется использованиемelements как [контекст ] (api.jquery.com/jQuery). Это внутренне реализовано с помощью [.находить() ] (api.jquery.com/find), так что эквивалентный способ написать выше:var found = elements.find('.FindMe');
 Toby J05 июн. 2015 г., 18:26
@ vol7ron большое спасибо за объяснение этого для меня; это сводило меня с ума!
 vol7ron10 авг. 2011 г., 16:05
Это произошло, потому что, как вы сказали, он используетfind()тогда как мне нужно было его использоватьclosest(), возможно, JQ следует изменить.Проблемный случай: $('pre', $('<pre><div>foo</div></pre><pre><div>bar</div></pre>'));, Поскольку он использует find, который смотрит только на детей, он никогда не найдетpres. Самое простое решение - добавить обертку.
 Jay Momaya30 апр. 2018 г., 16:28
@ Гуффа У меня есть строка '(parseFloat ($ ("# assumptions_table"). Find ("[name = \' assumptions [3] [7] \ ']"). Val ()) || 0) + ( (parseFloat ($ ( "# assumptions_table"). найти ( "[имя = 'предположения [3] [7] \' \]"). вал ()) || 0) * ((parseFloat ($ ( "# assumptions_table ") .find (" [name = \ 'предположения [4] [8] \'] "). val ()) || 0)) / 100) ', здесь я хочу найти, какие элементы участвуют, и как это сделать я понимаю?
 vol7ron10 авг. 2011 г., 15:46
Этот метод ($('selector', $('html string'))), кажется, не работает для меня в JQ: 1.6.2
 Alex G09 сент. 2016 г., 15:36
Какая разница это и$(theHtmlString).find('.FindMe') ?
 Guffa11 сент. 2016 г., 14:41
@AlexG: Использованиеelements.find(selector) делает так же, как$(selector, elements).

Ваш ответ на вопрос