JQuery attr допускает нестандартные? - PullRequest
2 голосов
/ 07 марта 2011

Я уже использую идентификатор и название, но мне нужно проанализировать еще 2 бита ...

$(this).attr("title"); $(this).attr("id");

Будет ли $(this).attr("custom1"); работать ??

Ответы [ 5 ]

3 голосов
/ 07 марта 2011

да, и кстати, вы можете установить несколько атрибутов одновременно:

$('.myselector').attr({
src: 'thefile.gif',
width: 200,
height: 300 });
2 голосов
/ 07 марта 2011

Да, и вы можете использовать его для всех data-attributes в HTML5. Какой способ добавления дополнительных атрибутов является предпочтительным.

Кроме того, все атрибуты data-* автоматически добавляются в объект data() jQuery для легкого доступа

1 голос
/ 07 марта 2011

Если вы просто хотите связать (по имени) некоторые данные с элементом DOM, вам лучше использовать метод ".data ()":

$(this).data('custom1', someValue);

API ".data ()" делает атрибуты "data-foo" в стиле HTML5, закодированные в HTML:

var foo = $(this).data('foo'); // gets the "data-foo" attribute value from element
0 голосов
/ 07 марта 2011

Да, и лучшее, что вы можете сделать, это просто проверить это.

<script>
$(document).ready(function() {
  // Handler for .ready() called.
  alert( "custom1 = " + $("#myField").attr("custom1") );
});
</script>

<div id="myField" custom1="My Custom Field"></div>

Теперь вы нарушаете разметку, поэтому я бы предложил сохранить вашу информацию в тегах ALT или NAME, чтобы предотвратить это ().

0 голосов
/ 07 марта 2011

Да, это работает, но это не очень хорошая идея.

Лучше использовать .data ('foo', 'bar'); , если вы хотите сохранить некоторые данные в элементе.

...