如何定位多个对象的内部

时间:2017-04-21 16:28:09

标签: jquery html json

我该怎么做:我有一个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?

获得问题

3 个答案:

答案 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

&#13;
&#13;
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;
&#13;
&#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"}'>