2015-11-30 88 views
0

我是Javascript新手,很抱歉,如果这是一个业余爱好者的问题。通过列表中的项目提取和过滤(JS)

我希望能够搜索列表并根据与目标项目列出的属性挑选出多个项目。

例如,假设我有以下列表:

<ul> 
<li> Round Red Apple </li> 
<li> Round Purple Grape </li> 
<li> Round Yellow Lemon </li> 
<li> Long Yellow Banana </li> 
<li> Long Green Cucumber </li> 
<li> Round Red Tomato </li> 
</ul> 

每个项目是两个属性中列出。例如,我会如何提取所有的圆形物品(苹果,葡萄,柠檬,番茄),然后在网页的其他地方只显示这些物品(不是物业),比如<div id="display"></div>

稍微复杂一点,我将如何提取所有的圆形物品,但只有那些也不是红色(葡萄,柠檬)?

回答

0

遍历所有li项目并使用startsWith()函数检查值并将其存储在单独的数组中以便稍后处理。使用JQuery each() function

示例代码:

var filteredItems = []; 
$('li').each(function(i, item) 
{ 
    var itemName = $(item).html(); 
    if(itemName.startsWith('Round')) 
    { 
      filteredItems.add(itemName); 
    } 
}); 

现在你可以遍历filteredItems附加在所需div的项目。

var container = $('#display'); 
$.each(filteredItems, function(i, item) 
{ 
    container.append("<div>" + item + "</div"); 
}); 

编辑:

你可以做到这一点与JavaScript的相同的方式为好。

尝试用:

+0

感谢您的回答!不幸的是,我对JQuery知之甚少,所以我真的不太了解你的代码。但我会研究这一点。谢谢! – Sculpin

+0

你也可以用同样的方式做到这一点。你可以使用[JavaScript for loop](http://www.w3schools.com/js/js_loop_for.asp) – Braj