Javascript 我可以使用正则表达式删除列表项吗?
我正在构建一个选择列表,如下所示:Javascript 我可以使用正则表达式删除列表项吗?,javascript,jquery,Javascript,Jquery,我正在构建一个选择列表,如下所示: var releases = data.suites.split(':'); $.each(releases, function(i, val){ if (val) { var info = val.split('-'); $('#testList').append('<option value="'+info[0]+'">'+info[1]+'</option>'); } }); va
var releases = data.suites.split(':');
$.each(releases, function(i, val){
if (val) {
var info = val.split('-');
$('#testList').append('<option value="'+info[0]+'">'+info[1]+'</option>');
}
});
var releases=data.suites.split(“:”);
$。每个(版本、功能(i、val){
if(val){
var info=val.split('-');
$('#testList')。追加(''+info[1]+'');
}
});
每个条目的值和文本前面都有特定的文本。是否可以使用jquery和regex从我的列表中删除与此文本匹配的所有项目?如果您只想阻止创建目标项目,请在循环中使用
.indexOf
如果要删除DOM中的现有元素,则可以基于属性值的开头进行DOM选择
// Cache DOM selection!!! ;-)
var testlist = $('#testList');
// remove existing elements where the "name" starts with "some_text"
testlist.find('option[name^="some_text"]').remove();
var releases = data.suites.split(':');
$.each(releases, function(i, val) {
// Prevent creation when the val starts with "some_text"
if (val && val.indexOf("some_text") !== 0) {
var info = val.split('-');
testlist.append('<option value="'+info[0]+'">'+info[1]+'</option>');
}
});
//缓存DOM选择!!!;-)
var testlist=$(“#testlist”);
//删除“name”以“some_text”开头的现有元素
testlist.find('option[name^=“some_text”]”)。remove();
var releases=data.suites.split(“:”);
$。每个(版本、功能(i、val){
//当val以“某些文本”开头时阻止创建
if(val&&val.indexOf(“某些文本”)!==0){
var info=val.split('-');
testlist.append(“”+info[1]+“”);
}
});
是的,这是可能的。如果你用一个来匹配这个值,你甚至不需要正则表达式。我不明白。从原始字符串中删除它们?是否将它们从正在创建的选项
元素中排除?从DOM中删除它们?请提供更多细节。是的,将它们从DOM和选项元素中删除。这样,您可能可以按照@FrédéricHamidi在循环之前的建议进行操作。要从正在创建的选项中排除它们,可以使用.indexOf
查看该文本是否位于字符串的开头if(val&&val.indexOf('foobar')!==0{…
如果目标文本位于字符串的开头,则indexOf
将返回0
索引。类似于:$('#testList')。删除($('option[name=“mytext”]).val();