我有一个大的javascript变量,它包含大约100 <li> </li>
组数据。我想过滤这些集合,例如,如果在它们中找到一些单词(如果在数组中找到一个单词,则删除该集合)。这些单词我将它们设置在数组中(items = [“mango”,“apple”,“pen”];)
任何人都可以告诉我如何做到这一点?
<li></li>
集的示例:
<li>
<img src="./mango.jpg" width="180" height="148"
alt="mango season" class="png">
<a href="/mango/" class="corners"> </a>
<div class="thumbnail_label">ok</div>
<div class="details">
<div class="title">
<a href=
"/mango/"> mango</a>
<span class="season">2</span>
</div>
<ul class="subject">
<li>read</li>
</ul>
<ul class="sub-info">
<li class="location">Europe</li>
<li class="price">2</li>
</ul>
</div>
</li>
答案 0 :(得分:0)
我将列出我用来执行此操作的方法/函数 - 不会进入确切的代码,因为我理解这是一个通用示例。
<div id="dom_set" display="none">
并执行大字符串的innerHTML var elementArray = document.getElementById('dom_set').querySelector(li);
,因此elementArray [0]是第一个li等。var testString = elementArray[0].outerHTML;
- 请注意,outerHTML不是100%跨浏览器兼容,因此您需要对其进行原型设计(Google可以将outerHTML原型化)if(testString.indexOf(badWordArray[j] > -1))
请注意,indexOf在IE8中不起作用,所以你也需要原型。var cleanString = document.getElementById('dom_set').innerHTML;
显然有很多实际的代码可供您填写,但这可能是一种更简洁的方法,而不是试图进行大量精心设计的字符串操作。
答案 1 :(得分:0)
假设您想要的值(“mango”,“apple”,“pen”)是“div”元素中“a”元素的文本子元素,其中“div”类中包含“title”类具有类“详细信息”的元素,并假设您可以使用jQuery:
function itemsFromHtmlFragment(htmlFragment) {
var selector = 'div[class=details] div[class=title] a';
return $(selector, htmlFragment).map(function(idx, el) {
return $(el).text().trim();
});
}
var bigVariable = '<li> <img ... ';
itemsFromHtmlFragment(bigVariable); // => ["mango"]