传递来自单个锚标记的大量数据

时间:2011-05-22 00:46:57

标签: javascript jquery object

从单个链接传递大量数据的最佳方法是什么?这样的事情是个好主意还是有更好的方法?

<a href="{ 'id':'1', 'foo':'bar', 'something':'else' }" id="myLnk" > Click </a>


$('#myLnk).click( function(event){
  event.preventDeafult();
  var data = $(this).attr('href')
  console.log( $.parseJSON( response ) );

})

谢谢!

3 个答案:

答案 0 :(得分:16)

执行此操作的最佳方法可能是在锚标记中使用custom data attributes

例如:

<a href="#" data-json="{ 'id':'1', 'foo':'bar', 'something':'else' }">Click</a>

然后,您可以使用jQuery data()函数轻松地从JavaScript访问此数据。

或者,您可以将其拆分为单独的属性,而不是将所有数据捆绑在一个JSON块中:

<a id="myLnk"
    data-id="1"
    data-foo="bar"
    data-something="else">

然后可以使用jQuery检索这些:

$("#myLnk").data("id")
$("#myLnk").data("foo")
$("#myLnk").data("something")

答案 1 :(得分:2)

推荐的方法是使用HTML5 data-*属性:

<a href="#" id="myLnk" data-id="1" data-foo="bar" data-something="else">Click</a>

答案 2 :(得分:1)

添加到Chris的&amp; MvChr的回复,你也可以这样做,虽然我讨厌使用单引号作为属性:

<a href='#' data-json='{ "id":1, "foo":"bar", "something":"else" }'>Click</a>

这种语法的原因是因为如果你正确引用它,jQuery中的$ .data将自动工作。否则,你必须要$ .parseJSON($。data(selector))这些信息。