Один метод, который вы можете использовать, это пользовательские атрибуты .Я думаю, что вы называете это микро-форматами , но я не совсем уверен, что это одно и то же, поэтому я написал описание ниже.
Задав этот вопрос раньше,Я в основном использую что-то вроде следующего:
<div data-pid="1234">
<a href="#" class="add-to-favourites">
<img src="addToFavourites.png" />
</a>
</div>
$("a.add-to-favourites").click(function() {
$.load("/Favourites/Add.php?prodID="+$(this).parent().attr("data-pid"));
});
Это должно делать именно то, что вы хотите сделать.Причина, по которой я поместил pid
в div
, а не тег a
, заключается в том, что вы можете поместить всю остальную информацию о продукте в div
с другими действиями, которые пользователь может предпринять, например, с отображениемвсплывающая подсказка при наведении курсора на data-description
или отображение на карте с помощью data-geo-x
и data-geo-y
.Конечно, вы можете назвать их как угодно.
Поддержка / принятие
Это становится совершенно приемлемым способом сделать то, что вы хотите сделать.HTML 5 поддерживает это именно для того, чего вы пытаетесь достичь.
Так что он поддерживается HTML 5, но как насчет HTML 4?
Можетсделать HTML 4 недействительным, но мир движется к большему и лучшему.Старые браузеры (IE6 и более ранние версии, FF1 / 2, Opera 7/8/9) становятся все менее распространенными, поэтому это не должно быть проблемой.На самом деле он не будет ломаться старых браузеров - функциональность все равно будет работать.
Важное замечание о валидности
Убедитесь, что вы добавили data-
наимя атрибута.Это сделает атрибут совершенно корректным в HTML 5.
Несколько дополнительных подсказок
В jQuery 1.5 я слышал ответ на мой вопрос , который вы можете просто указать attr("pid")
, чтобы вернуть значение data-pid
.Если дело обстоит именно так, тогда я буду осторожен при именовании второй части имени атрибута после имени фактического атрибута (например, вместо data-id
используйте data-pid
- особенно если указан атрибут id
Я не уверен, какой эффект это даст, если вы этого не сделаете, но лучше, во-первых, избежать проблемы, чем иметь проблемы с сайтом на более позднем этапе из-за этого.
Надеюсьэто то, что вы искали.