【发布时间】:2021-12-02 04:59:53
【问题描述】:
我是 JSON 新手,并尝试了以下示例来查看结果,但它在控制台中返回一个空数组。有什么建议吗?
function createJSON() {
var obj = [];
var elems = $("input[class=email]");
for (i = 0; i < elems.length; i += 1) {
var id = this.getAttribute('title');
var email = this.value;
tmp = {
'title': id,
'email': email
};
obj.push(tmp);
}
var jsonString = JSON.stringify(obj);
console.log(jsonString);
}
createJSON();
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
【问题讨论】:
-
将
$("input[class=email]")更改为$('input[class="email"]')。您需要在选择器中为属性值添加引号。而且既然是类,你可以使用$('input.email')。 -
@Gil 不太准确。仅当值包含空格时,才需要在选择器中的属性值周围加上引号。在这种情况下,
[class="email"]和[class=email]都可以工作 - 尽管.email的性能更高,实践也更好。 -
已更改,但仍会在控制台 [] 中获得此输出,其为空
标签: javascript jquery json