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

Rap*_*ael 48 html javascript jquery

我正在寻找一种从包含HTML的字符串中获取HTML元素的方法.是否可以使用jQuery选择器来执行此操作?

基本上我有一个javascript函数从服务器获取整个页面,但我只需要该页面中的一个元素.

提前致谢

Guf*_*ffa 90

是的,您可以将字符串转换为元素,然后从中选择元素.例:

var elements = $(theHtmlString);
var found = $('.FindMe', elements);
Run Code Online (Sandbox Code Playgroud)

  • 这被称为使用`elements`作为[**context**](http://api.jquery.com/jQuery/).它在内部使用[**.find()**](http://api.jquery.com/find/)实现,因此编写上述内容的等效方法是:`var found = elements.find('. FindMe');` (15认同)
  • 没关系,因为正如你所说它使用`find()`,而我需要它使用`nearest()`,或许应该修改jQ.**问题案例:**`$('pre',$('<pre> <div> foo </ div> </ pre> <pre> <div> bar </ div> </ pre>')) ;`.因为它使用只查看孩子的find,它永远不会找到任何`pre`s.最简单的解决方案是添加换行. (9认同)
  • @AlexG:使用`elements.find(selector)`与`$(selector,elements)`的作用相同. (3认同)
  • 有什么区别和`$(theHtmlString).find('.FindMe')`? (2认同)

Kin*_*ous 20

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

$("<div>I want this element</div>")
Run Code Online (Sandbox Code Playgroud)


Pet*_*tai 10

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

$(selectorWhereToShowNewData).load('pagePath selectorForElementFromNewData');
Run Code Online (Sandbox Code Playgroud)

例如:

$('#result').load('ajax/test.html #container');
Run Code Online (Sandbox Code Playgroud)

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


jay*_*eno 7

只需使用$ .filter

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