如何使用JavaScript解析<script>中的内容?

时间:2016-07-03 19:21:22

标签: javascript html json ajax

例如在网页中我有一个地方:

&#xA;&#xA;
 &lt; script id =“ajaxify-data”type =“application / json”&gt;& #xA; {“key1”:123,“key2”:333}&#xA;&lt; / script&gt;&#xA;  
&#xA;&#xA;

我可以用javascript来解析它? (具体来说,ajaxify-data)

&#xA;&#xA;

jQuery $(“#ajaxify-data”)在这里不起作用.. &#xA;&#xA;

https://discuss.leetcode.com/unread 看起来像网络资源,但包含 ajaxify-data 标签,它实际上以ajax结果呈现数据,而不是将其存储在上面的实际ajax标签中。

&#xA;&#xA;

这就是我在控制台:

&#XA;&#XA;
 <代码>&GT; document.getElementById('ajaxify-data')&#xA; null&#xA;  
&#xA;&#xA;

网页截图:&#xA;

&#xA;

3 个答案:

答案 0 :(得分:5)

只需JSON parse脚本标记的innerHTML。

普通JavaScript:

&#13;
&#13;
var json = JSON.parse(
  document.getElementById('ajaxify-data').innerHTML
);

console.log(json);
console.log(json.key1);
&#13;
<script id="ajaxify-data" type="application/json">
  { "key1": 123, "key2": 333 }
</script>
&#13;
&#13;
&#13;

或者使用jQuery:

&#13;
&#13;
var json = JSON.parse($('#ajaxify-data').html())

console.log(json);
console.log(json.key1);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script id="ajaxify-data" type="application/json">
  { "key1": 123, "key2": 333 }
</script>
&#13;
&#13;
&#13;

答案 1 :(得分:2)

    $('#ajaxify-data').html()
    $('#ajaxify-data').text()

适合我)

答案 2 :(得分:0)

有多种方法可以获取内联script元素的内容:

  • textContent:返回节点的文本内容
  • innerHTML:返回元素的HTML内容
  • text:返回HTMLScriptElement的文本内容

然后,如果它包含JSON,您可以使用JSON.parse解析它。