0

这是我到目前为止所拥有的,它工作正常:

$("a[id=terminalNode]").each(function() {
    var _href = $(this).attr("href"); 
    $(this).attr("href", _href + '/');
});

但是,在某些情况下,值可能在 href 中包含“.aspx”。有没有一种简单的方法可以将这些从我的每个循环中过滤出来?

4

2 回答 2

2
$("a[id=terminalNode]").each(function() {
    var href = $(this).attr("href");
    if (href.toLowerCase().slice(-5) != '.aspx')
        $(this).attr("href", href + '/');
});

或者

$("a[id=terminalNode]").each(function() {
    var href = $(this).attr("href");
    if (href.toLowerCase().test('.aspx'))
        $(this).attr("href", href + '/');
});

或者

$("a[id=terminalNode]").each(function() {
    var href = $(this).attr("href");
    if (href.toLowerCase().indexOf('.aspx') != -1)
        $(this).attr("href", href + '/');
});

但是为什么你会在 a[id=terminalNode] 上有一个 foreach?带有 id 的东西应该只在页面上出现一次。

于 2012-12-03T17:00:42.207 回答
1

您可以使用.indexOf()检查字符串是否包含特定字符串。它区分大小写,因此.toLowerCase()可能是个好主意:

$("a[id=terminalNode]").each(function () {
    var _href = $(this).attr("href");
    if (_href.toLowerCase().indexOf(".aspx") == -1) {
        $(this).attr("href", _href + "/");
    }
});
于 2012-12-03T16:56:01.643 回答