简单的Javascript执行
对于那些了解jQuery的人来说,这应该相当简单。简单的Javascript执行
我试图让这个脚本只在加载的页面上存在<span class="site-header__cart-indicator "></span>
时才运行。
这里是不变的jQuery代码:
window.setTimeout(redirectCheckout, 2000);
function redirectCheckout() {
if (!(window.location.href.includes("?1"))) {
window.location.href = "https://www.example.com/checkout";
}
}
因此,这里是我的版本的代码,但它似乎并不奏效:
if (!(window.location.includes("<span class="
site - header__cart - indicator "></span>")))
window.setTimeout(redirectCheckout, 2000);
function redirectCheckout() {
if (!(window.location.href.includes("?1"))) {
window.location.href = "https://www.example.com/checkout";
}
}
谁能告诉我为什么我的代码不工作?什么是正确的代码?
要检查是否在页面存在的元素,您可以选择然后检查length
属性(如果使用jQuery),或者如果它为空(如果使用纯JS):
// jQuery
if ($('.site-header__cart-indicator').length)
window.setTimeout(redirectCheckout, 2000);
// plain JS
if (window.querySelector('.site-header__cart-indicator'))
window.setTimeout(redirectCheckout, 2000);
只是添加了POJS版本:) –
即使您使用jQuery,它仍然是普通的旧JavaScript,对吗? :-)不同之处在于你是使用jQuery还是使用DOM,与你正在编写的*语言无关...... –
当然,我的意思是'纯JS',意思是没有涉及到框架。 –
那么,对于一件事你有一个引用错误:
"<span class="site-header__cart-indicator"></span>"
应该是:
'<span class="site-header__cart-indicator"></span>'
但更多的点,这种情况是没有意义的。该字符串永远不会位于位置(当前URL)。在页面上将是。
尽管您的代码目前没有jQuery,但您确实需要使用它。在这种情况下,您可以选择该元素并查看是否有任何匹配。类似这样的:
if ($('span.site-header__cart-indicator').length > 0)
下一次,请将该问题作为明显的重复结束,而不是回答此概念的另一个副本。 – Cerbrus
这里没有jQuery代码! – undefined