这是我到目前为止所拥有的,它工作正常:
$("a[id=terminalNode]").each(function() {
var _href = $(this).attr("href");
$(this).attr("href", _href + '/');
});
但是,在某些情况下,值可能在 href 中包含“.aspx”。有没有一种简单的方法可以将这些从我的每个循环中过滤出来?
这是我到目前为止所拥有的,它工作正常:
$("a[id=terminalNode]").each(function() {
var _href = $(this).attr("href");
$(this).attr("href", _href + '/');
});
但是,在某些情况下,值可能在 href 中包含“.aspx”。有没有一种简单的方法可以将这些从我的每个循环中过滤出来?
$("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 的东西应该只在页面上出现一次。
您可以使用.indexOf()
检查字符串是否包含特定字符串。它区分大小写,因此.toLowerCase()
可能是个好主意:
$("a[id=terminalNode]").each(function () {
var _href = $(this).attr("href");
if (_href.toLowerCase().indexOf(".aspx") == -1) {
$(this).attr("href", _href + "/");
}
});