将 location.href 更改为 jQuery
Change location.href with jQuery
我需要更改我网站上某些网址的 location.href。这些是产品卡片,它们不包含“a”(这会使这更容易)。
这里是 HTML:
<div class="product-card " onclick="location.href='https://www.google.com'">
我的意思是它非常简单,但我就是无法让它工作。没有找到 Google 中没有此类结果的任何结果,所有结果都包含 "a":
$("a[href='http://www.google.com/']").attr('href', 'http://www.live.com/')
关于如何让它与 jQuery(或简单的 JS)一起工作有什么想法吗?
不幸的是,我不能更改代码本身,我只能用 jQuery 和 JS 来操作它。
要更改所有 class='product-card'
的 onClick
,您可以这样做:
// All the links
const links = document.getElementsByClassName('product-card');
// Loop over them
Array.prototype.forEach.call(links, function(el) {
// Set new onClick
el.setAttribute("onClick", "location.href = 'http://www.live.com/'" );
});
<div class="product-card " onclick="location.href='https://www.google.com'">Test</div>
将产生以下 DOM:
<div class="product-card " onclick="location.href = 'http://www.live.com/'">Test</div>
另一种选择是遍历每个 <div>
并检查 onClick
中是否存在类似 google.com
的内容,如果是这样,我们可以安全地更改它而不改变任何其他内容具有相同 class 的 div,如下所示:
// All the divs (or any other element)
const allDivs = document.getElementsByTagName('div');
// For each
Array.from(allDivs).forEach(function(div) {
// If the 'onClick' contains 'google.com', lets change
const oc = div.getAttributeNode('onclick');
if (oc && oc.nodeValue.includes('google.com')) {
// Change onClick
div.setAttribute("onClick", "location.href = 'http://www.live.com/'" );
}
});
<div class="product-card" onclick="location.href='https://www.google.com'">Change me</div>
<div class="product-card">Don't touch me!</div>
我需要更改我网站上某些网址的 location.href。这些是产品卡片,它们不包含“a”(这会使这更容易)。
这里是 HTML:
<div class="product-card " onclick="location.href='https://www.google.com'">
我的意思是它非常简单,但我就是无法让它工作。没有找到 Google 中没有此类结果的任何结果,所有结果都包含 "a":
$("a[href='http://www.google.com/']").attr('href', 'http://www.live.com/')
关于如何让它与 jQuery(或简单的 JS)一起工作有什么想法吗?
不幸的是,我不能更改代码本身,我只能用 jQuery 和 JS 来操作它。
要更改所有 class='product-card'
的 onClick
,您可以这样做:
// All the links
const links = document.getElementsByClassName('product-card');
// Loop over them
Array.prototype.forEach.call(links, function(el) {
// Set new onClick
el.setAttribute("onClick", "location.href = 'http://www.live.com/'" );
});
<div class="product-card " onclick="location.href='https://www.google.com'">Test</div>
将产生以下 DOM:
<div class="product-card " onclick="location.href = 'http://www.live.com/'">Test</div>
另一种选择是遍历每个 <div>
并检查 onClick
中是否存在类似 google.com
的内容,如果是这样,我们可以安全地更改它而不改变任何其他内容具有相同 class 的 div,如下所示:
// All the divs (or any other element)
const allDivs = document.getElementsByTagName('div');
// For each
Array.from(allDivs).forEach(function(div) {
// If the 'onClick' contains 'google.com', lets change
const oc = div.getAttributeNode('onclick');
if (oc && oc.nodeValue.includes('google.com')) {
// Change onClick
div.setAttribute("onClick", "location.href = 'http://www.live.com/'" );
}
});
<div class="product-card" onclick="location.href='https://www.google.com'">Change me</div>
<div class="product-card">Don't touch me!</div>