Javascript 删除所有“-&引用;内部选择选项

Javascript 删除所有“-&引用;内部选择选项,javascript,jquery,Javascript,Jquery,我在wordpress中有一个选项列表,但它是在子级菜单的自动a-之前生成的。现在,我想把它们循环出来,但无法得到它似乎工作 我以菜单项为目标,尝试循环出“-”以删除它们 var $menuitem = $(".hasCustomSelect .menu-item"); $menuitem.filter(function(){ return $.trim($(this).text()) == '-' }).remove(); 小密码笔 如果我理解正确的话。问题是您试图匹配的破折号类

我在wordpress中有一个选项列表,但它是在子级菜单的自动a-之前生成的。现在,我想把它们循环出来,但无法得到它似乎工作

我以菜单项为目标,尝试循环出“-”以删除它们

var $menuitem = $(".hasCustomSelect .menu-item");

$menuitem.filter(function(){
    return $.trim($(this).text()) ==  '-'
}).remove();
小密码笔


如果我理解正确的话。问题是您试图匹配的破折号类型错误
-
vs
-
。改为试试这个
return$.trim($(this.text())=='-'


我可以从代码笔或代码下面看到-vs-a-,尝试复制粘贴

我猜你也想用

var $menuitem = $(".hasCustomSelect .menu-item");

$menuitem.filter(function(){
   return $.trim($(this).text()).indexOf('—')>-1;//all values containing `—`
}).remove();
或者如果你真的只想删除单比

return $.trim($(this).text())=='—'; //the value that is `—`

更新的代码笔

如果删除分隔符选项是您想要的,则imtheman有一个

如果您想从菜单标题中删除前导破折号(我对您所需内容的第一个猜测),则可以使用以下代码段:

var $menuitem = $(".hasCustomSelect .menu-item");
$.each($menuitem, function(key, val){
    $(val).text($(val).text().replace(/—+ /,''));
});

这是因为trim只删除空白。您不能让trim删除其他字符。您需要使用不同的工具来完成此操作,例如,
regex
。从未听说过它,请看一看。对于仅为一个
-
的条目,会发生什么情况?比如9.5到10之间?这就是你想要的吗?我想要的,这是我找到这个问题的解决方案后的一部分,它应该只是删除元素,当它有一个-。如果你有一个想法,如果我结合代码也删除短破折号它不工作。这只会删除中间的空格。