JavaScript - 更改一组包含特定文本和可变 ID 元素的链接
JavaScript - change a set of links that contain specific text and variable ID element
我真的是 JavaScript 的新手,但这是我的开始:
var anchors = document.body.getElementsByTagName("a");
for(var i=0; i < anchors.length; i++) {
var anc = anchors[i];
if (anc.getAttribute("href") == "/catalog?id=123456789") {
anc.setAttribute("href", "/catalog?id=123456789#specificID");
anc.setAttribute("target", "iframe");
} }
我有一个网页,其中包含 link 的列表,类似于 /catalog?id=123456789
,其中 ID 可以是 9 个数字的任意组合。我想定位所有 links(包括 ID),在 link 的末尾附加一个页面锚点,然后将它们与页面上现有的 links 切换.我愿意尝试使用 JQuery,但我正在使用的网站使用了 MooTools 库,因此它可能无法正常工作。
使用 substr()
获取 URL 的开头并匹配:
var href = anc.getAttribute("href")
if (href.substr(0, 12) == "/catalog?id=") {
anc.setAttribute("href", href + "#specificID");
anc.setAttribute("target", "iframe");
}
这是一个使用函数 JavaScript 和 MooTools Array.prototype.each 函数建立在 barmar 解决方案之上的解决方案:
var anchors = document.body.getElementsByTagName('a');
anchors.filter(function(anc) {
anc.getAttribute('href').substr(0,12) === '/catalog?id=';
}).each(function(anc) {
anc.setAttribute('href', href + '#specificID');
anc.setAttribute('target', 'iframe');
});
无需添加 JQuery 即可完成此操作; Mootools 似乎拥有所需的所有管道。
在进行相等比较时一定要使用===运算符,否则可能得不到预期的结果。
您可以使用以下代码:
var anchors = document.body.getElementsByTagName("a");
for(var i=0; i < anchors.length; i++) {
var anc = anchors[i];
if (anc.getAttribute("href").indexOf("/catalog?id=") != -1) { // If the anchor's 'href' attribute contains '/catalog?id='
anc.setAttribute("href", anc.getAttribute("href") + "#specificID");
anc.setAttribute("target", "iframe");
}
}
在Javascript, foo.indexOf(bar)
returns -1 如果字符串foo
不包含字符串bar
.
我真的是 JavaScript 的新手,但这是我的开始:
var anchors = document.body.getElementsByTagName("a");
for(var i=0; i < anchors.length; i++) {
var anc = anchors[i];
if (anc.getAttribute("href") == "/catalog?id=123456789") {
anc.setAttribute("href", "/catalog?id=123456789#specificID");
anc.setAttribute("target", "iframe");
} }
我有一个网页,其中包含 link 的列表,类似于 /catalog?id=123456789
,其中 ID 可以是 9 个数字的任意组合。我想定位所有 links(包括 ID),在 link 的末尾附加一个页面锚点,然后将它们与页面上现有的 links 切换.我愿意尝试使用 JQuery,但我正在使用的网站使用了 MooTools 库,因此它可能无法正常工作。
使用 substr()
获取 URL 的开头并匹配:
var href = anc.getAttribute("href")
if (href.substr(0, 12) == "/catalog?id=") {
anc.setAttribute("href", href + "#specificID");
anc.setAttribute("target", "iframe");
}
这是一个使用函数 JavaScript 和 MooTools Array.prototype.each 函数建立在 barmar 解决方案之上的解决方案:
var anchors = document.body.getElementsByTagName('a');
anchors.filter(function(anc) {
anc.getAttribute('href').substr(0,12) === '/catalog?id=';
}).each(function(anc) {
anc.setAttribute('href', href + '#specificID');
anc.setAttribute('target', 'iframe');
});
无需添加 JQuery 即可完成此操作; Mootools 似乎拥有所需的所有管道。
在进行相等比较时一定要使用===运算符,否则可能得不到预期的结果。
您可以使用以下代码:
var anchors = document.body.getElementsByTagName("a");
for(var i=0; i < anchors.length; i++) {
var anc = anchors[i];
if (anc.getAttribute("href").indexOf("/catalog?id=") != -1) { // If the anchor's 'href' attribute contains '/catalog?id='
anc.setAttribute("href", anc.getAttribute("href") + "#specificID");
anc.setAttribute("target", "iframe");
}
}
在Javascript, foo.indexOf(bar)
returns -1 如果字符串foo
不包含字符串bar
.