Javascript 移除'&;拉阔';使用jQuery从字符串
我有一个Javascript 移除'&;拉阔';使用jQuery从字符串,javascript,jquery,Javascript,Jquery,我有一个,我试图显示其中一个字符串包含Tab3»的面包屑 它类似于Tab1Tab2Tab3Tab4,只是是一个向右箭头.png图像 我想从Tab3»中删除»或> 我想搜索所选选项卡中是否有>或»,如果有,我想将其替换为”,以便Tab3成为Tab3 我试过以下方法,但似乎不起作用 $("document").ready(function() { var crumbs = $("a.selected"); jQuery.each(crumbs, function
,我试图显示其中一个字符串包含Tab3»
的面包屑
它类似于Tab1
Tab2
Tab3
Tab4
,只是
是一个向右箭头.png
图像
我想从Tab3»
中删除»
或>
我想搜索所选选项卡中是否有>
或»
,如果有,我想将其替换为”
,以便Tab3
成为Tab3
我试过以下方法,但似乎不起作用
$("document").ready(function() {
var crumbs = $("a.selected");
jQuery.each(crumbs, function() {
if(this != crumbs.get([0])) {
$("#bread").append(" ");
}
$("#bread").append("<img src='<c:url value="/resources/images/arrow-right.png" />' />" + " ");
var crumb = $(this).html();
var slicedCrumb;
if(crumb.indexOf(' » ') != -1) {
slicedCrumb = $(this).html().replace(' » ', '');
$("#bread").append(slicedCrumb);
}
else {
$("#bread").append(crumb);
}
});
});
我花了相当长的时间阅读关于给定主题的其他帖子,但不知何故,我无法让它工作。有人能帮我理解我在这里遗漏了什么吗?我正在使用jquery-1.5.js
运行此代码。我是否需要使用较新版本的jquery
或任何其他库才能使其正常工作?尝试使用
slicedCrumb = $(this).html().replace('/[&]raquo[;]/ ', '');
重要的部分是转义»
字符。我还添加了global(g
)标志,这样,如果有多个实例与正则表达式匹配,它们都将被删除
下面是一个演示:
更新
如果要在尝试替换字符之前检查字符是否存在,则可以使用.match()
:
下面是一个演示:
.match()
:如果你能用你尝试过的HTML和JS制作一个JSFIDLE,那会让你更容易。»
的值是否来自你控制的源代码(例如CMS)?也许你可以通过在源代码处清理数据来节省很多精力。@saratis:我以前不知道JSFIDLE是什么意思,但在谷歌搜索之后,我想我可以尝试这样做。谢谢我对JavaScript和jquery知之甚少。@Pheonix:当我第一次读到你的评论时,我理解错了。不,这些选项卡是简单的菜单选项卡,而“»”是从另一个javascript动态附加的,该javascript将“»”附加到任何具有子选项卡的选项卡上。如果我将该值从“»”更改为“>”,我就能够解决该问题。但是我想改为使用“»”。'if(crumb.indexOf('\»')!=-1){slicedCrumb=$(this.html().replace(/\»/g,);$(“#bread”).append(slicedCrumb);}不起作用。如何测试crumbs数组中的元素是否包含“»”?crumb.search(“\»”)!=-1
或碎屑搜索(/\»/)!=-1
也不起作用。我不确定我使用的表达是否正确。我不熟悉javascript或jquery。@跳过if(crumb.search(/\»/)>-1){…}
应该可以,请查看我在更新答案中发布的演示。if(crumb.search(/\»/)>-1){…}
也不起作用:(.我尝试了你的演示,但也不起作用。如果我更改了动态附加到“>”的``
然后搜索它,然后用替换它。
一切正常。但是我想用»»来显示一个有子选项卡的选项卡。你的意思是我可以在搜索()的位置使用匹配()
?我也尝试过,但也没用。如果我替换“»”
在具有子选项卡的选项卡的动态追加代码中使用``如果((crumb.indexOf(“”>-1)){slicedCrumb=$(this.html().replace('',);$(“#bread”).append(slicedCrumb);}`一切正常,追加的Tab3>
在bread
div中转换为Tab3
。但是我希望有子选项卡的选项卡显示为Tab3»
,这就是问题的根源。`if(crumb.indexOf('/[&]raquo[;]/')!=-1{slicedCrumb=$(this.html()。replace('/[&]raquo[;]/'));$(“#面包”).append(slicedCrumb);}`也不起作用:(。
slicedCrumb = $(this).html().replace('/[&]raquo[;]/ ', '');
slicedCrumb = $(this).html().replace(/\»/g, '');
var text = $(this).html();
if (text.search(/\»/) > -1) {
slicedCrumb = text.replace(/\»/g, '');
}