我该怎么做:我有一个div:<div data-something""></div>
数据 - 包含一个json数组:
{"question":[{"id":1,"question":"Ducimus aperiam nesciunt est quia."},{"id":2,"question":"Minima sunt qui similique ut culpa natus consequatur."},{"id":3,"question":"Sit et nihil ut porro amet laborum iure molestiae."},{"id":4,"question":"Dolore quaerat molestiae iste in dolores harum rerum."},{"id":5,"question":"Quia quasi quae sint saepe."},{"id":6,"question":"Tempora et quo aperiam natus."}]}
我想用jQuery里面的数据。我将数据放在jquery var。
中var test = $("#target").data("something");
我在这里被困住了。例如,如何从id:4?
获得问题答案 0 :(得分:0)
您可以做的是将字符串转换为数组并按索引访问它,如下所示:
var test = $("#target").data("something");
var test_array = JSON.parse(test);
因为它被转换为一个数组你可以使用id - 1所以得到id为4的问题它是sub 3,假设你的id是有序的
var Q4 = test_array ['question'][3]['question'];
console.log (Q4);
如果没有,那么你可以使用for循环并检查id如下:
for (sub in test_array ['question'] ) {
if (4 == test_array ['question'][sub]['id'])
var Q4 = test_array ['question'][sub]['question'];
console.log (Q4);
答案 1 :(得分:0)
你也可以用这种方式引用id
var infos = '{"questions":['+
'{ "id":1, "question":"Ducimus aperiam nesciunt est quia." },'+
'{ "id":2, "question":"Minima sunt qui similique ut culpa natus consequatur." },'+
'{ "id":3, "question":"Sit et nihil ut porro amet laborum iure molestiae." },'+
'{ "id":4, "question":"Dolore quaerat molestiae iste in dolores harum rerum." },'+
'{ "id":5, "question":"Quia quasi quae sint saepe." },'+
'{ "id":6, "question":"Tempora et quo aperiam natus."}'+
']}';
var x = function (a,b) {
obj = JSON.parse(b);
document.getElementById("demo").innerHTML = "Question:"+obj.questions[a].id+"<br>"+obj.questions[a].question+"<br>";
};
var z = x(3,infos);
&#13;
<p id="demo"></p>
&#13;
答案 2 :(得分:0)
$(document).ready(function(){
var test = $("#target").data("something"), obj = JSON.parse(test);
console.log(obj);
});
写下并显示您的控制台,您的json现在是一个对象,您可以将其用作对象。例如:obj.question[0].question
会在控制台中显示:“Ducimus aperiam nesciunt est quia.
”。
顺便说一下,你有这个错误,因为你的html是这样的:
<div id="test" data-something="{"json"}">
和“”inside“”不好用这个:
<div id="test" data-something='{"json"}'>