簡體   English   中英

JavaScript初學者,如果變量不匹配以執行某項操作

[英]JavaScript beginner, if a variable does not match to do something

基本上,我要寫的是編寫潤滑脂猴子腳本,這樣,如果頁面上的鏈接不是鏈接,我就可以在忽略列表中直接打開該鏈接,如果該鏈接在列表中,則在5秒鍾后重新加載頁面這是我到目前為止嘗試過的

var url1 =  $("span.capsulelink a:eq(0) ").attr("href");
var ignoreList = ["example1.com","example2.com"]
if (url1 !== ignoreList) {
    window.open(url1);
} else {
    setTimeout(function() {
        location.reload();  
    },5000);
}

我知道這是我遇到麻煩的( url1 !== ignoreList )部分,我似乎無法找到正確的表達方式。 就像我不知道怎么說url1是否不在ignoreList

ignoreList.indexOf(url1) !== -1

這是另一種說法:“ url包含在ignoreList數組中?”

這是因為ArrayindexOf()方法返回要查找的元素的索引,如果該元素不存在,則返回-1

要取消此操作(您要執行的操作),請輸入:

ignoreList.indexOf(url1) === -1

(即url1 不在 ignoreList ?)

這是一個很好的問題,因為答案確實不是直觀的。

當您開始學習javascript ,某些語法模式開始變得熟悉。

但是,JavaScript相當於PHP的

if (!in_array([ARRAY]));

根本不是很明顯-這是您只需要知道的一種語法。

這是您要查找的javascript

if (ignoreList.indexOf(url1) !== -1) {

[RELOAD PAGE CODE HERE]

}

else {

[OPEN THE LINK CODE HERE]

}

這是它起作用的原因:

ignoreList.indexOf([VALUE])遍歷ignoreList數組並搜索該數組的項。

如果這些項目之一 [VALUE] ,則返回該項目的索引。

重要的是,如果沒有一個項目是[VALUE]返回-1

因此,為了確定至少一項 [VALUE] ,您必須驗證返回的索引肯定不是 -1

因此,您需要檢查的條件是:

if (ignoreList.indexOf(url1) !== -1)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM