1

我有一些这样的输入标签:

<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')

我应该找回“真实”这个词,但我却没有定义。为什么会这样?

4

3 回答 3

2

使用.data()方法访问自定义属性是一个更好的主意

$('input').data('singlespace')

问题也可能是由于多个输入。

把代码放在里面$.each

$('input').each(function() {
    console.log($(this).data('singlespace'));
});

或者使用eq基于索引来定位特定输入,因为选择器过于具体。

$('input').eq(1).data('singlespace') ;
// Gets the 2nd input
于 2013-08-07T00:48:05.650 回答
1

.attr()方法从 jQuery 对象中的第一个元素返回指定的属性。在您的情况下,jQuery 对象$('input')选择页面上的每个输入元素,因此您尝试从第一个输入中获取该属性,其中(可能)该属性未定义。

更改您的选择器以确保获得正确的元素。

于 2013-08-07T00:50:50.603 回答
1

你也可以试试这个:

$('input[data-singlespace]').data('singlespace');
于 2013-08-07T00:53:03.807 回答