如何使用 jQuery 从字符串中获取 HTML 元素

IT技术 javascript jquery html
2021-01-15 15:49:29

我正在寻找一种从包含 HTML 的字符串中获取 HTML 元素的方法。是否可以使用 jQuery 选择器来做到这一点?

我有一个 Javascript 函数可以从服务器获取整个页面,但我只需要该页面中的一个元素。

5个回答

是的,您可以将字符串转换为元素,并从中选择元素。例子:

var elements = $(theHtmlString);
var found = $('.FindMe', elements);
这和有$(theHtmlString).find('.FindMe')什么区别
2021-03-21 15:49:29
这称为使用elements[上下文]( api.jquery.com/jQuery )。它在内部使用 [ .find() ]( api.jquery.com/find ) 实现,因此编写上述内容的等效方法是:var found = elements.find('.FindMe');
2021-03-22 15:49:29
这个方法 ( $('selector', $('html string'))) 在 jQ:1.6.2 中似乎对我不起作用
2021-03-28 15:49:29
没关系发生这种情况,因为正如您所说它正在使用find(),而我需要使用它closest(),也许应该修改 jQ。 问题案例: $('pre', $('<pre><div>foo</div></pre><pre><div>bar</div></pre>'));因为它使用 find ,它只查看孩子,它永远不会找到任何pres。最简单的解决方案是添加包装。
2021-04-01 15:49:29
@AlexG:使用elements.find(selector)$(selector, elements).
2021-04-08 15:49:29

只需将 html 文本包装在 $ 函数中。喜欢

$("<div>I want this element</div>")
@KingErronnneous 我有一个字符串 '(parseFloat($("#assumptions_table").find("[name=\'assumptions[3][7]\']").val())||0)+( (parseFloat($("#assumptions_table").find("[name=\'assumptions[3][7]\']").val())||0)*((parseFloat($("#assumptions_table") ").find("[name=\'assumptions[4][8]\']").val())||0))/100)',这里我想找出涉及到哪些元素然后怎么做我明白了
2021-03-14 15:49:29
我爱你告诉我这是可能的。这只是解决了我所有的问题。
2021-04-04 15:49:29

如果您从服务器动态加载页面,那么您可以使用以下表单从加载的页面中只定位一个元素 .load()

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

例如:

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

其中:
#result加载的页面部分将在当前页面上显示
ajax/test.html的位置 服务器请求发送到的 URL 是
#container您要显示的响应页面上的元素。只有那个会被加载到元素中#result响应页面的其余部分将不会显示。

我有一个字符串 '(parseFloat($("#assumptions_table").find("[name=\'assumptions[3][7]\']").val())||0)+((parseFloat ($("#assumptions_table").find("[name=\'assumptions[3][7]\']").val())||0)*((parseFloat($("#assumptions_table") .find("[name=\'assumptions[4][8]\']").val())||0))/100)',这里我想找到涉及哪些元素,那么我怎样才能得到那
2021-03-19 15:49:29

只需使用 $.filter

var html = "<div><span class='im-here'></span></div>"
var found = $(html).filter(".im-here")
filter即使您想要的元素恰好是最外面的元素,方法也能工作。find方法只找到后代,所以它不会匹配最外面的元素。在此答案的示例中,您无法使用该find方法获取div.
2021-03-28 15:49:29

您可以使用 $.find

$(document).ready(function() {
  var htmlVal = "<div><span class='im-here'>Span Value</span></div>";
  var spanElement = $(htmlVal).find("span");
  var spanVal = spanElement.text();

  alert(spanVal);
});
是的,您可以使用$.find— 但仅当您只想要最外层元素内的元素时,div' in this example. The find` 方法仅匹配后代你不能finddiv这个例子-但是,你可以filterdiv,因为filter方法可以匹配任何/所有元素,包括最外层div
2021-03-31 15:49:29