对于变量中的语句

时间:2017-09-26 12:17:08

标签: javascript for-loop

我正在尝试做这样的事情:

 func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {


      let   str = "$('body').attr('data-uid','\(String(uid))');$('body').attr('data-pid','\(String(memberTypeId))');$('body').attr('data-baseurl','\(DataProvider.sharedInstance.baseUrl)');"


        self.webView.evaluateJavaScript(str) { (id, error) in
            print(error)
        }
    }

但我不知道如何正确地做到这一点。

2 个答案:

答案 0 :(得分:3)

动态变量通常不是一种好习惯。你应该避免它们。一个更好的解决方案是创建一个包含它们的对象:

var obj = {}; 

for (var i = 1; i <= va; i++) {

    obj["v" + i + "x"] = document.getElementById("v" + i + "x");
    obj["v" + i + "y"] = document.getElementById("v" + i + "y");
    obj["v" + i + "r"] = document.getElementById("v" + i + "r");

}

稍后,您可以访问以下元素:

console.log( obj["v1r"] ); // Node with id v1r reference
console.log( obj["v5x"] ); // Node with id v5x reference

答案 1 :(得分:0)

看起来您最好使用arrays

var elements = []; // init to an empty array
for (var i = 1; i <= va; i++) {
    elements[i] = []; // each array entry is itself an array
    elements[i]['x'] = document.getElementById("v" + i + "x");
    elements[i]['y'] = document.getElementById("v" + i + "y");
    elements[i]['r'] = document.getElementById("v" + i + "r");
}

然后使用适当的索引检索您的值:

console.log(elements[1]['x']);