Передать много данных из одного тега привязки - PullRequest
6 голосов
/ 22 мая 2011

Каков наилучший способ передачи большого количества данных по одной ссылке?Это хорошая идея или есть лучший способ?

<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 ]

16 голосов
/ 22 мая 2011

Лучший способ сделать это, вероятно, использовать настраиваемые атрибуты данных в вашем теге привязки.

Например:

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

Затем вы можете легко получить доступ к этим данным из вашего JavaScript, используя функцию jQuery data () .

Или вместо объединения всех данных в один блок JSON вы можете разделить их на отдельные атрибуты:

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

Затем их можно получить с помощью jQuery, например:

$("#myLnk").data("id")
$("#myLnk").data("foo")
$("#myLnk").data("something")
2 голосов
/ 22 мая 2011

Рекомендуется использовать атрибуты HTML5 data-*:

<a href="#" id="myLnk" data-id="1" data-foo="bar" data-something="else">Click</a>
1 голос
/ 22 мая 2011

Чтобы добавить ответы Криса и MvChr, вы также можете сделать это, хотя я ненавижу , используя одинарные кавычки для атрибутов:

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

Причина этого синтаксиса в том, что если вы правильно его процитируете, $ .data в jQuery будет работать автоматически. В противном случае вы должны $ .parseJSON ($. Data (селектор)) информацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...