使用XMLHttpRequest只选择HTML的特定部分

Selecting just specific part of HTML with XMLHttpRequest?

本文关键字:定部 HTML XMLHttpRequest 选择 使用      更新时间:2023-09-26

我目前从网站下载HTML,并使用"responseText"获取HTML代码,现在我只想要其中的特定部分。如何使用XMLHttpRequest选择HTML代码的特定部分?我已经在研究使用Xpath或querySelectorAll,我该如何切实方便地做到这一点?比方说,从HTML代码中,您不希望只选择-->div where id="homemembers"。

提前感谢!

这是代码:

foobar.com/index.html:

..........
.....
<body>
..........
<div id="home-members">
    ........
    .....
</div>
....
</body>

我的遍历代码:

<script>
$.ajax({
   url: "http://foobar.com/index.php",
   cache: false
}).done(function( html ) {
   var partial = $(html).find("home-members");
   $("#results").append( partial);
})
</script>
<body>
    <div id="results"></div>
</body>

使用jQuery搜索返回的html。类似于:

$.ajax({
  url: "test.html",
  cache: false
}).done(function( html ) {
  var partial = $(html).find("div.dynamic-wrap.sidebar-wrap.clearfix");
  $("#results").append( partial);
});

mm如果我不理解错误。。。

responseText是一个字符串,所以你可以使用regEx选择其中的一部分,但我认为这可能不容易,而且会被黑客入侵。

另一种解决方案可能是..使用InnerHTML将响应文本放在div中,这样您就可以使用标准的javascript选择器来获取各种元素。像。。

document.getElementById('structural_div').innerHTML = responseText;
var what_you_need = document.getElementById('structural_div').getElementById('id_of_element_you_need').className

您可以按照自己想要的方式,通过类名、标记名等获取元素,而不是getElementById('id_of_element_you_need')

希望能帮助您:)

我建议使用HtmlAgilityPack。