Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.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 通过获取当前URL替换href值_Javascript_Php_Jquery_Html_Wordpress - Fatal编程技术网

Javascript 通过获取当前URL替换href值

Javascript 通过获取当前URL替换href值,javascript,php,jquery,html,wordpress,Javascript,Php,Jquery,Html,Wordpress,我在Wordpress中有一个使用WP菜单系统的菜单。所有链接基本上都是输出以下内容的自定义链接(为简洁起见删除了WP类): 编辑 我只想更改当前页面菜单中的链接。到目前为止,答案改变了菜单中的所有链接,我只想找到同一页上的链接。试试这个 $('a').each(function(){ // check the anchor tab href has location.href or not if($(this).attr('href').indexOf(window.locatio

我在Wordpress中有一个使用WP菜单系统的菜单。所有链接基本上都是输出以下内容的自定义链接(为简洁起见删除了WP类):

编辑

我只想更改当前页面菜单中的链接。到目前为止,答案改变了菜单中的所有链接,我只想找到同一页上的链接。

试试这个

$('a').each(function(){
   // check the anchor tab href has location.href or not
   if($(this).attr('href').indexOf(window.location.href) != -1)
   {
       // some code to replace location.href to blank
       var href=$(this).attr('href').replace(window.location.href,'');
       $(this).attr('href',href);
   }
});
或者,试试这个

$('a').each(function(){
   if(this.href.indexOf('#') != -1)
   {
       var href=this.href.split('#')[1];
       this.href = '#'+href;
   }
});
试试这个

$('a').each(function(){
   // check the anchor tab href has location.href or not
   if($(this).attr('href').indexOf(window.location.href) != -1)
   {
       // some code to replace location.href to blank
       var href=$(this).attr('href').replace(window.location.href,'');
       $(this).attr('href',href);
   }
});
或者,试试这个

$('a').each(function(){
   if(this.href.indexOf('#') != -1)
   {
       var href=this.href.split('#')[1];
       this.href = '#'+href;
   }
});

首先在
ul
元素中添加一个class
sections
,使其易于定位

<ul class="sections">
    <li><a href="http://mysite.com/about/#section-1">Section 1</a>
    </li>
    <li><a href="http://mysite.com/about/#section-2">Section 2</a>
    </li>
    <li><a href="http://mysite.com/about/#section-3">Section 3</a>
    </li>
</ul>

首先在
ul
元素中添加一个class
sections
,使其易于定位

<ul class="sections">
    <li><a href="http://mysite.com/about/#section-1">Section 1</a>
    </li>
    <li><a href="http://mysite.com/about/#section-2">Section 2</a>
    </li>
    <li><a href="http://mysite.com/about/#section-3">Section 3</a>
    </li>
</ul>
另一个选择

$(function() {
    $("a[href*='" + window.location.pathname + "#']").attr("href", function() {
        return "#" + this.href.split("#")[1];
    });
});
这将找到当前页面的所有链接和其中的
#
,并相应地修复href值。

另一个选项

$(function() {
    $("a[href*='" + window.location.pathname + "#']").attr("href", function() {
        return "#" + this.href.split("#")[1];
    });
});


这将找到当前页面的所有链接和其中的
#
,并相应地修正href值。

注意,无需在jQuery对象中包装本机DOM元素(锚定)
this.href=this.href.replace(window.location.href.)
做了同样的事情。两个代码示例都带来了一个错误:无法调用undefinedNote的方法'indexOf',请注意,不需要在jQuery对象中包装本机DOM元素(锚定)
this.href=this.href.replace(window.location.href.)执行相同的操作。两个代码示例都会带来一个错误:无法调用的方法'indexOf'undefined@Archer-请建议这种情况&我会解决它。这很好,但是它会更改菜单中的所有链接,而不仅仅是当前页面上的链接。请参阅更新的问题以澄清问题。是否有一种方法可以动态地将类名添加到当前查看页面的corect菜单中?那会解决的。例如:如果仅在“关于”页上,则仅将该类名添加到“关于”子菜单。@egr103-我根据您的编辑进行了更改。。请尝试。谢谢,但我发现语法错误,无法识别的表达式:。a[href*=/cjo//#]@Archer节-请建议这样的情况&我会修复它。这很好,但是它会更改菜单中的所有链接,而不仅仅是当前页面上的链接。请参阅更新的问题以澄清问题。是否有一种方法可以动态地将类名添加到当前查看页面的corect菜单中?那会解决的。例如:如果仅在“关于”页上,则仅将该类名添加到“关于”子菜单。@egr103-我根据您的编辑进行了更改。。请尝试。谢谢,但我发现语法错误,无法识别的表达式:。a[href*=/cjo/#]恐怕这似乎不起作用。没有URL被替换或更改,因为我发现有一个小小的错误,URL上不包括尾随的
/
。我还将
window.location.href
更改为
window.location.pathname
,因此它不包含完整的url(带有任何#值和查询字符串)。现在应该更好了:)我在开发工具中看到一个语法错误,如下所示:语法错误,无法识别的表达式:a[href*=/cjo/testing//#]-如果我删除了额外的斜杠,同样的错误也会发生。我实际上使用了您的代码,但只是针对菜单中的链接,使用了一个类名,如@Krishna的答案所建议的。你认为这会影响其他页面链接吗?我真的不明白这段代码到底发生了什么是的,如果你能在链接或容器中添加一个类,那么这是一项容易得多的工作,而不是在href值中搜索。很高兴我能帮上忙:)恐怕这似乎不起作用。没有URL被替换或更改,因为我发现有一个小小的错误,URL上不包括尾随的
/
。我还将
window.location.href
更改为
window.location.pathname
,因此它不包含完整的url(带有任何#值和查询字符串)。现在应该更好了:)我在开发工具中看到一个语法错误,如下所示:语法错误,无法识别的表达式:a[href*=/cjo/testing//#]-如果我删除了额外的斜杠,同样的错误也会发生。我实际上使用了您的代码,但只是针对菜单中的链接,使用了一个类名,如@Krishna的答案所建议的。你认为这会影响其他页面链接吗?我真的不明白这段代码到底发生了什么是的,如果你能在链接或容器中添加一个类,那么这是一项容易得多的工作,而不是在href值中搜索。很高兴我能帮忙:)