我正在尝试获得具有特定div
类的所有id
个元素的div
CSS
个。
我可以[object HTMLDivElement]
获得using getElementByClass
,但我无法从此对象获得id
。
基本上,完全我想做的是
div
类的所有id
元素的div
CSS
,data-title
元素的div
,data-title
元素的div
display:none
元素的div
。以下是我的尝试:
function FilterFiles(filterItem) {
var elements = document.getElementsByClassName("listItem");
for (var i = 0; i < elements.length; i++) {
alert(elements[i].id);
// get div id of divs with data-title !=(not equal) filterItem
// make display:none of matching divs
}
}
以下是实际HTML
http://jsfiddle.net/6bo1rjrt/1/的小提琴。
答案 0 :(得分:1)
您可以使用attribute-not-equal-selector。你还需要为div元素提供id:
function FilterFiles(filterItem) {
var ids= $('.listItem[data-title!="'+filterItem+'"]').map(function(){
return this.id;
}).get()
}
<强> Working Demo 强>
用于隐藏不具有数据标题值的元素:
$('.listItem[data-title!="'+filterItem+'"]').hide()
答案 1 :(得分:1)
var temp = new Array();
var title = new Array();
function FilterFiles(filterItem) {
$('.listItem').each(function ()
{
temp.push($(this).attr("id")); //get id of each div to array
alert($(this).attr("id"));
title.push($(this).attr("data-title")); //get title of each div to array
if($(this).attr("data-title") != filterItem) //check non matching div
{
$(this).hide(); //hide div
}
});
}
首先,我将所有div与每个特定的类循环,然后检查它&#34;数据标题&#34;。
答案 2 :(得分:0)
使用Jquery,您可以执行以下操作:
var arr = [];
$('.listItem').each(function(){
arr.push($(this).attr('id'));
});
答案 3 :(得分:0)
使用jQuery .each()
:
var arr = [];
$('.listItem').each(function(){
arr.push(this.id);
});
使用jQuery .map()
var arr = $('.listItem').map(function() { return this.id; }).get();
答案 4 :(得分:0)
我修改了你的小提琴例子。请参阅此更新fiddle
$("#filter").click(function () {
var filterItem = "A03-5(KAB製ヒーター付エアサスオペシート)_20140515154904.xlsx";
FilterFiles(filterItem);
});
function FilterFiles(filterItem) {
var elements = $("div.listItem");
elements.each(function(){
var el=$(this);
if(el.data("title")!=filterItem)
el.hide();
else
el.show();
});
/*for (var i = 0; i < elements.length; i++) {
alert(elements[i].id);
// get div id of divs with data-title !=(not equal) filterItem
// make display:none of matching divs
}*/
}