我有一些像这样的输入标签:
<input data-role="none" id="TaskActionList.SpaceId" type="hidden" value="@Model.CombinedAvailableSpaces.Single().SpaceId" name="" data-inputname="TaskActionList" data-propertyname="SpaceId" data-singlespace="true"/>
(我的页面上有大约3个完全相同的输入标签)
我想从输入标记的最后一个属性获取最后一个属性值:'true'。我已经尝试过这个jquery,但我一直得到一个未定义的值:
$('input').attr('data-singlespace')
我应该回到“真实”这个词,但我得到了不确定。为什么会这样?
答案 0 :(得分:2)
最好使用.data()
方法访问自定义属性
$('input').data('singlespace')
问题也可能是因为有多个输入。
将代码放在$.each
$('input').each(function() {
console.log($(this).data('singlespace'));
});
或者使用eq
根据索引定位特定输入,因为选择器太具体了。
$('input').eq(1).data('singlespace') ;
// Gets the 2nd input
答案 1 :(得分:1)
.attr()
method从jQuery对象的第一个元素返回指定的属性。在您的情况下,jQuery对象$('input')
选择页面上的每个输入元素,因此您尝试从第一个输入获取该属性,其中(可能)未定义属性。
更改选择器以确保获得正确的元素。
答案 2 :(得分:1)
你也可以试试这个:
$('input[data-singlespace]').data('singlespace');