Jquery 使用javascript数组删除li标记
我正在搜索一个解决方案来删除使用javascript数组过滤的Jquery 使用javascript数组删除li标记,jquery,html,jquery-selectors,html-lists,Jquery,Html,Jquery Selectors,Html Lists,我正在搜索一个解决方案来删除使用javascript数组过滤的标记 数组: var mygroups=["1","8","3","4","5"] 示例(输入): 这个也不起作用: $('li').filter(function() { if($(this).is('*:has(a[href|=/group/viewgroup/])') { var href = $(this).find('a').attr('href'), trail = hr
标记
数组:
var mygroups=["1","8","3","4","5"]
示例(输入):
这个也不起作用:
$('li').filter(function() {
if($(this).is('*:has(a[href|=/group/viewgroup/])') {
var href = $(this).find('a').attr('href'),
trail = href.split('/')[3],
number = + /(\d+)-/.exec(trail)[1];
return $.inArray(myarray, +number) == -1;
}
return true;
}).remove();
使用过滤函数怎么样 在此场景中,您选择所有
li
,并过滤掉所需的一个
$('li').filter(function(index){
if(/*condition applied*/){
....
}
});
这很有效
$("li").each(function() {
if($(this).find("a").size() == 0) {
$(this).remove();
};
});
这似乎是你想要的。但这并不是世界上最整洁的代码:
$('li').filter(function() {
var a = $(this).find('a');
if (!a.length)
return true;
var text = /(\d+)-/.exec(a.attr('href'))[1];
if ($.inArray(text , mygroups) >= 0)
return false;
return true;
}).remove();
它获取所有的li,然后过滤掉所有与数组具有匹配值的li,并删除剩下的li
由于您实际上没有进行筛选,您应该在此处使用
每个,以使代码更易于理解。锚必须在href属性中包含“group”。这只是删除了所有不包含a take的li,问题指出应该使用数组对其进行筛选。IMO,OP中的代码需要重新思考;将span
s与类或其他东西一起使用会非常容易(而且速度会快一点),尽管当前的实现确实有效。请再次检查我的详细信息。找不到第二个“A”标记。请再次检查我的详细信息。它找不到第二个“A”标记。
$('li').filter(function(index){
if(/*condition applied*/){
....
}
});
$("li").each(function() {
if($(this).find("a").size() == 0) {
$(this).remove();
};
});
$('li').filter(function() {
var a = $(this).find('a');
if (!a.length)
return true;
var text = /(\d+)-/.exec(a.attr('href'))[1];
if ($.inArray(text , mygroups) >= 0)
return false;
return true;
}).remove();
$('li').filter(function() {
if($(this).is('*:has(a[href|=/group/viewgroup/])') {
var href = $(this).find('a').attr('href'),
trail = href.split('/')[3],
number = + /(\d+)-/.exec(trail)[1];
return $.inArray(myarray, +number) == -1;
}
return true;
}).remove();