Как связать атрибут данных Elements

У меня есть атрибут data, например:

<a href="stuff" data-open-dialog="location-XXXX">click</a>
<a href="stuff" data-open-dialog="location-YYYY">click</a>

Как мне привязать к открытому диалоговому окну данных и получить значение либо XXXX, либо YYYY?

Я знаю, как привязываться к определенному значению, например:

a[data-open-dialog="location-XXXX"]

но как я могу сделать значение динамическим, а затем получить значение на клике?

спасибо

3 ответа

То, что вы делаете, на самом деле не связано с привязкой. Вы просто хотите получить его значение, или я думаю.

Попробуйте что-то вроде этого:

$('a[data-open-dialog]').click(function(e) { e.preventDefault(); var location = $(this).data('open-dialog'); ...
});

location будет удерживать location-XXXX или location-YYYY. Для вас должно быть просто удалить полосу "location-".


Я думаю, вы имеете в виду, что хотите выбрать любой элемент с атрибутом, а затем получить значение этого атрибута в событии click. Если это так, используйте селектор has-attribute:

$('a[data-open-dialog]').click(function() { var location = $(this).data('open-dialog');
});

Если вам нужна часть XXX, вы должны сделать .substr(9), чтобы удалить первые 9 символов строки.

См. руководство по jQuery:


var data_contains = function(obj, val) { console.log(obj, val); if ($(obj).data('open-dialog') != undefined) { if ($(obj).data('open-dialog') == val) return true; } return false;
}
$('a').filter(function() { return data_contains(this, "location-XXXX");
}).click(function() { alert(this.innerHTML); return false;
});

Fiddle: http://jsfiddle.net/maniator/H75JD/3/

licensed under cc by-sa 3.0 with attribution.