这个jQuery .replace的哪个部分不起作用?

时间:2017-06-13 09:53:43

标签: javascript jquery replace

我至少读过十个不同的类似主题,但是我们无法弄清楚问题是什么。

我正在尝试更改,在我的标题菜单中分配网址。这些网址包含" onepage"应该用标签替换。

SomeProperty1

JSFiddle



UserControl

UserControl




3 个答案:

答案 0 :(得分:0)

您应该更改href而不是文本。另外,你的css选择器错了。



$('a[href*="onepage"]').each(function() {
    var href = $(this).prop("href");
    // change the property href to new url
    $(this).prop("href", href.replace(new RegExp("onepage", "g"), "#"));
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
  <li class="menu-item">
    <a class="level2" href="//test.com/products/iphone/iphone-onepage-32gb"><span>iPhone 32GB</span></a>
  </li>
  <li class="menu-item">
    <a class="level2" href="//test.com/products/iphone/iphone-onepage-64gb"><span>iPhone 64GB</span></a>
  </li>
</ul>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

$('a[href*="onepage"]').each(function() {
        var str = $(this).attr('href').replace(/onepage/, "#");
        $(this).attr('href',str);
});

$('a[href*="onepage"]').attr( "href", function( i, val ) {
  return val.replace(/onepage/, "#");
});

答案 2 :(得分:0)

您可以使用普通的javascript来更改href属性,请参阅以下内容:

$('a[href*="onepage"]').each(function() {
  this.href = this.href.replace(/onepage/, "#");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
    <li class="menu-item">
        <a class="level2" href="//test.com/products/iphone/iphone-onepage-32gb"><span>iPhone 32GB</span></a>
    </li>
    <li class="menu-item">
      <a class="level2" href="//test.com/products/iphone/iphone-onepage-64gb"><span>iPhone 64GB</span></a>
    </li>
</ul>