Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 移除'&;拉阔';使用jQuery从字符串_Javascript_Jquery - Fatal编程技术网

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" />' />" + "&nbsp;");

            var crumb = $(this).html();
            var slicedCrumb;
            if(crumb.indexOf(' &raquo; ') != -1) {
                slicedCrumb = $(this).html().replace(' &raquo; ', '');              
                $("#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, '');
}