我正在使用javascript。现在我在java中有一个字符串,它是" [\" x \",\" y \"]"。现在我想在javascript中使用它。请找到以下代码:
String str = "[\"x\",\"y\"]";
<script>
var javaScriptVar = '<%= str%>'
</script>
现在我想迭代str中的每个元素。我正在使用:
$.each(javaScriptVar, function (i, itemI) {
//do something
}
但是我在控制台中收到以下错误:
Cannot use 'in' operator to search for 'length' in ["x","y"].
如何使这个可迭代?是因为它正在考虑作为一个字符串?如何在javascript中将其作为一个数组来迭代其中的元素?
答案 0 :(得分:2)
你只是为了避免引号使它成为一个对象(JSON是Javascript中的有效对象表示),否则你不能在字符串上使用jQuery.each
方法。错误是抛出,因为它使用in
operator查找length
属性,但它不适用于字符串。
var javaScriptVar = <%= str%>
<小时/> 或者解析JSON字符串并将其作为参数提供。
$.each(JSON.parse(javaScriptVar), function (i, itemI) {
//do something
})