我有这个数组:[home, info, mail,,,, something, stuff, other]
但我想删除或替换,,
与,
我试过:allIDs.replace(",,", ",");
但它似乎不适用于数组
有空条目的原因是:
$(document).find('DIV').each(function(){
allIDs.push(this.id); })
我正在索引所有DIV的ID名称,以检查是否有重复项,然后重命名当前生成的DIV ID ..
或者我想find()
只有已定义ID的DIV ..
答案 0 :(得分:2)
请尝试使用$('div[id]')
。它将选择div
属性定义的所有id
元素。
答案 1 :(得分:1)
将您的id
聚会更改为此...
var allIDs = $(document).find('DIV')
.map(function(){ return this.id || undefined })
.toArray();
如果DIV
上没有ID,则会返回undefined
,并且不会向生成的数组添加任何内容。
答案 2 :(得分:1)
这非常有效:
theArray = theArray.filter(function(e) { return e; });
答案 3 :(得分:0)
你想要的是从数组中删除空值,而不是用,,
替换,
。
尝试here
答案 4 :(得分:0)
尝试仅定义ID为div
的内容:
$(document).find('div[id]').each(function(){
allIDs.push(this.id); });
});
但是如果你想清理阵列:
allIDs = clean_up(allIDs);
function clean_up(a){
var b = []
for(i in a) if(a[i] && a[i].length) a.push(a[i]);
return a;
}
答案 5 :(得分:0)
在javascript中,你不能只是删除数组中的',,,来解决问题。
你的意思是数组['home','info','','','','','mail','something','stuff','other']?
假设有一些空字符串,并且您想删除它们。
您可以使用简单的javascript函数:
allIDs = ["home", "info", "", "", "", "", "mail", "something", "stuff", "other"];
remove_empty_str = function(arr) {
new_array = [];
for (ii = 0, len = arr.length; ii < len; ii++) {
item = arr[ii];
if (item !== "" || item !== null || item !== (void 0)) {
new_array.push(item);
}
}
return new_array;
};
newIDs = remove_empty_str(allIDs);
alert(newIDs);
我认为在进行任何jQuery输出之前处理数组是更好的做法。
您也可以在其他应用中重复使用remove_empty_str()。