8

我试图用每种方法改变href,

这是演示,检查一个,你会看到没有变化

html:

<a href="#/news">News</a>
<a href="#/news/detail">Detail</a>
<a href="#/sport">Sport</a>
<a href="#/sport/football">Football</a>​​​​​​​​​​​​

jQuery:

$('a').each(function() {
  $(this).attr('href').replace('#/',''); //tried to erase #/ from all hrefs
});​
4

3 回答 3

15

您发布的代码将获得值作为string然后正确replace的值,但它会立即丢弃结果。您需要将替换的值传递给attr. 尝试以下

$('a').each(function() {
  var value = $(this).attr('href');
  $(this).attr('href', value.replace('#/',''));
});​
于 2012-07-06T20:25:01.720 回答
6
var href = $(this).attr('href');
$(this).attr('href', href.replace('#/',''));
于 2012-07-06T20:24:43.077 回答
2

您还可以检查href值并制作条件

<script type="text/javascript">
$('a').each(function() {
    var value = $(this).attr('href');
    if(value=='http://google.com')
    {
        $(this).attr('href', 'http://youtube.com');
    }
});​
</script>
于 2014-07-10T06:42:59.907 回答