0

我想从“a”html标签中拆分一些内容。我从 jquery 重新开始。我的代码是这样的,但它不起作用:

$("a.uribb").each(function() {
    var id = $(this).attr("href").replace("http://dereferer.org/?", "");
    $(this).append(+id+);
});

​ HTML标签是这样的:

<a href="http://dereferer.org/?http://example.com/" target="_blank" class="uribb">
    http://example.com/
</a>

我想把http://dereferer.org/?一部分分开,把另一部分留在那里。我怎么能这样做?

4

3 回答 3

1

如果要替换内容,请尝试使用.text()而不是。.append()此外,不需要+id 之前和之后。

你可以试试这个:

var id = $(this).attr("href").replace("http://dereferer.org/?", "");
$(this).text(id);

更新

再次阅读问题,我不确定您是要替换a-tag 的内容还是 href 的值。如果是后者,试试这个:

var id = $(this).attr("href").replace("http://dereferer.org/?", "");
$(this).attr("href", id);

注意

从 jQuery 1.6 开始,最好使用.prop()而不是.attr().

于 2012-06-30T21:32:32.530 回答
1

那个怎么样?

$("a.uribb").attr("href", function(i, val) {
    return val.substring(val.indexOf("?") + 1);
});​

演示:http: //jsfiddle.net/zQdL4/


这很有趣,但是对于您的标记,以下代码也应该可以工作:)

$("a.uribb").attr("href", function() {
    return $.trim(this.innerHTML);
});​
于 2012-06-30T21:42:23.073 回答
0

对,所以你想要的是这个。

<a href="http://example.com/">...

试试这个。

$("a.uribb").each(function() {
    var indirect_url = $(this).prop("href");
    var direct_url = indirect_url.replace("http://dereferer.org/?", "")
    $(this).prop('href', direct_url);
});

你当然可以用更少的行来做这件事,但是这样就很清楚发生了什么。具体来说,不会replace()修改它所操作的字符串。

于 2012-06-30T21:44:59.663 回答