我需要获取div的'role'属性,其中包含动态生成的ID以及下面的代码。
HTML:
<div id="renable0" role="0">
false
</div>
<div id="renable1" role="1">
true
</div>
<!-- THE LIST OF DIVS CONTINUES IN INCREASING INCREMENTS OF 1 -->
使用Javascript:
$("[id^='renable']").editInPlace({ // editInPlace is a jQuery plugin
url: 'save.php',
params: 'pos='+$(this).attr('role') // How can I get this role attribute for the clicked div?
});
答案 0 :(得分:3)
您需要使用.each()
循环:
$("[id^='renable']").each(function() {
$(this).editInPlace({
url: 'save.php',
params: 'pos='+$(this).attr('role')
});
});
如果editInPlace
允许params
选项成为函数,那将会很好,就像其他一些jQuery插件为类似选项所做的那样。但既然没有,你需要这样做。
顺便说一下,您对role
属性的使用与它打算用作ARIA的一部分的方式不匹配。标准角色包括button
和menuitem
。您不应滥用此类标准属性,也不应构成自定义属性。如果您想在元素中添加额外的属性,请使用data-XXX
元素,例如
<div id="renable0" data-role="0">
您可以使用$(this).data('role')
在jQuery中访问它。
答案 1 :(得分:0)
this
不会引用您的元素,您应该引用它:
// loop through your elements
$("[id^='renable']").each(function () {
// keep reference to it
var $elem = $(this);
// make it editInplace
$elem.editInPlace({
url: 'save.php',
params: 'pos='+$elem.attr('role')
});
});