按字符串javascript中的类搜索

时间:2016-10-07 16:07:46

标签: javascript jquery html node.js

假设我有这个字符串:



var myhtml= "<html><body><div class='header'>Welcome</div><div class='news' id='new_1'>Lorem ipsum....</div><div class='news' id='new_2'>dolor sit amet...</div></body></html>";
&#13;
&#13;
&#13;

好吧,如果这是在普通网站上,我可以使用&#34; getElementsbyClassName&#34;获取我想要选择的类的所有元素(在我的例子中,&#34; news&#34;)。 但是......如果它是这样的情况,当你在变量中包含所有html时,我该如何获取它们?有没有办法让所有的div与课程#34;新闻&#34;?

4 个答案:

答案 0 :(得分:5)

您可以使用cheerio

var cheerio = require('cheerio');

var myhtml = "<html><body><div class='header'>Welcome</div><div       class='news' id='new_1'>Lorem ipsum....</div><div class='news' id='new_2'>dolor sit amet...</div></body></html>";

var $ = cheerio.load(myhtml);

console.log($('.header').html() );//Welcome

答案 1 :(得分:1)

如果你正在讨论它的客户端JS和jQuery(你的标签中不清楚,混合的env标签):

var myhtml= "<html><body><div class='header'>Welcome</div><div class='news' id='new_1'>Lorem ipsum....</div><div class='news' id='new_2'>dolor sit amet...</div></body></html>";
var dom = $.parseHTML(myhtml);
var elem = $(dom).find(".news");

答案 2 :(得分:1)

是的,您可以像在常规HTML页面上那样获得它们,关键是在创建元素之后获取元素,因此选择类的代码必须在填充页面的代码之后。例如:

var myhtml= "<html><body><div class='header'>Welcome</div><div     class='news' id='new_1'>Lorem ipsum....</div><div class='news' id='new_2'>dolor sit amet...</div></body></html>";

var x = document.getElementsByClassName("news");

var i;
for (i = 0; i < x.length; i++) {
x[i].style.color = "red";
}

答案 3 :(得分:1)

我考虑过一种不同的方法来解决这个问题,首先创建一个虚拟文档,然后将该HTML插入到虚拟文档中,然后你可以使用常规选择器找到任何HTML元素,以下是它的工作方式:

let htmlString= "<html><body><div class='header'>Welcome</div><div class='news' id='new_1'>Lorem ipsum....</div><div class='news' id='new_2'>dolor sit amet...</div></body></html>";

let virtualDocument = document.implementation.createHTMLDocument("Virtual Document");

virtualDocument.documentElement.innerHTML = htmlString;

selectedEle = virtualDocument.querySelectorAll(".news");

console.log(selectedEle); // Your selected element

但请注意使用document.implementation.createHTMLDocument并检查兼容性表