2014-01-18 95 views
0

我有通过服务器上的AJAX生成的简单标记。相关行是:

<div id='login_history_resp' 
     class='paginator_slider' 
     DATA-params="{'SLIDER_LEFT_POS':139, 'SLIDER_WIDTH':309, 'HANDLE_WIDTH':165}" > 
    </div> 

以上其实就是一行。为了便于阅读,我试图将其分成多个部分。 在此,我运行下面的JS,它失败。

slider_css = $.parseJSON($('#login_history_resp').data('params')); 

到目前为止我做了什么?我尝试在分配给DATA-params的字符串中交换双/单引号。我试着把所有的双引号放在一起。我甚至在DATA-params上尝试过.attr。我需要将其作为对象读取,然后提取各个属性。我究竟做错了什么?请帮忙!

+2

使用双引号和删除'$ .parseJSON'。 jQuery处理它。 http://jsfiddle.net/D37DR/ – undefined

+0

@BlackSheep在哪里使用双引号?我试过DATA-params ='{“SLIDER ... – Sam

+2

对于属性,这是一个无效的JSON,你也不应该重新解析它,jQuery调用场景后面的'$ .parseJSON'。 – undefined

回答

3

两个步骤在这里:

  1. 改变周围的JSON属性双引号的报价;它是not valid JSON
  2. data方法会自动解析你的JSON,所以没必要!

的HTML:

<div id='login_history_resp' 
     class='paginator_slider' 
     DATA-params='{"SLIDER_LEFT_POS":139, "SLIDER_WIDTH":309, "HANDLE_WIDTH":165}' > 
</div> 

中的JavaScript:

slider_css = $('#login_history_resp').data('params'); 
+0

谢谢,但我试过了,它返回null。可能是我在AJAX返回的其他地方做了错误的事情,让我再检查一下,我已经upvoted你的答案。问题出现在其他地方,我肯定会接受你的回答,但是我确实学到了一些东西...... – Sam

+0

Evan Hahn。问题在其他地方,谢谢你的帮助。 – Sam