簡體   English   中英

Javascript循環在流星中不起作用

[英]Javascript loop doesn't work in meteor

這應該有效,但事實並非如此。 我究竟做錯了什么? 我想將“selected”輸出到我在流星頁面上的標簽

Template.editor.onRendered( function() {
var cats = ["Comedy","Action","Self Help"];
var arrayLength = cats.length;
for (var i = 0; i < arrayLength; i++) {
    if(cats[i].indexOf(getDocument.category) != -1){
        //found
        var id = cats[i].trim().toLowerCase();
        $("body").find("#"+id).attr("selected=selected");
        console.log(id);
    } else {
        console.log(getDocument.category)
    }
}
}

getDocument.category = ["Action", "Comedy"]

也許改變

$("body").find("#"+id).attr("selected=selected");

$("body").find("#"+id).attr("selected","selected");

編輯:

if(cats[i].indexOf(getDocument.category) != -1){

我認為你有一個錯誤的方向試試這個:

if(getDocument.category.indexOf(cats[i]) != -1){

您需要更改一行以設置所選屬性

$("body").find("#"+id).attr("selected","selected");

或者嘗試以下方法:

$(document).find("#"+id).attr("selected","selected");

如果我沒有錯誤地理解你要求的內容,那么你就是在getDocument.category中找到'cats'數組的元素。 如果是這樣,上述方法是錯誤的。 看看這一行:

if(cats[i].indexOf(getDocument.category) != -1){...}

if checking將始終返回-1,結果如下,解釋如下:

cats[i]將返回cat的元素(帶索引i),所以如果i = 0,結果將是“Comedy”。 然后, indexOf將在其上執行"Comedy".indexOf() ,以找到getDocument.category(這是一個數組)的位置。

那意味着你在字符串中尋找一個數組? 那是行不通的。

實際上,我們可以檢查包含方法的數組中是否存在元素。 所以也許完整的代碼看起來像這樣:

Template.editor.onRendered(function() {
    var cats = ["Comedy", "Action", "Self Help"];
    var arrayLength = cats.length;
    for (var i = 0; i < arrayLength; i++) {
        if (getDocument.category.includes(cats[0])) {
            //found
            var id = cats[i].trim().toLowerCase();
            $("body").find("#" + id).attr("selected=selected");
            console.log(id);
        } else {
            console.log(getDocument.category)
        }
    }
})

希望這會有所幫助,謝謝

暫無
暫無

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

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