我已閱讀其他有關.data()
和.attr()
的問題沒有任何答案對我有幫助。不能讓jquery.data()或.attr()工作都返回undefined
我有一個按鈕,每個按鈕都有自己的ID格式: player-*****
其中*****
是一個數字ID。
我也有一些隱藏的表單元素,我想:
- 從表單元素
- 閱讀值產生的參考我的div如
'#draftBtn-*****'
- 得到重視數據按鈕。
- 對數據進行處理的東西....
我不能似乎得到重視我的DIV的數據,總是返回undefined。
.attr('player-data')
或.data('player)
都返回undefined。
我使用jQuery v1.12.0
樣品行從表:
<tr>
<td><span class="label label-primary">TE</span></td>
<td>Richard Rodgers</td>
<td><b>GB</b> @ ARI</td>
<td>8</td>
<td>19</td>
<td>5100</td>
<td>
<div id='draftBtn-633397' class='btn btn-sm btn-success draft-player' data-player='{
"id" : 633397,
"player" : 16491,
"shortName" : "R.Rodgers",
"name" : "Richard Rodgers",
"team" : "GB",
"opponent" : "ARI",
"position" : "TE",
"salary" : 5100,
"lastGameFantasyPoints" : "5",
"projectedFantasyPoints" : "3",
"opponentRank" : "8",
"opponentPositionRank" : "19",
"status" : "Scrambled",
"statusCode" : "P",
"statusColor" : "green"
}'>+</div>
</td>
</tr>
我的javascript:
var squadPlayers = {
'qb': null,
'rb1': null,
'rb2': null,
'wr1': null,
'wr2': null,
'te': null,
'k': null,
'flex': null,
'def': null
};
var getPosKeys = function(){
var keys = [];
for (var key in squadPlayers) {
if (squadPlayers.hasOwnProperty(key)) {
keys.push(key);
}
}
return keys;
}
var initSquad = function(){
var keys = getPosKeys();
console.log(keys);
keys.forEach(function(element) {
var formRef = '#contestEntry_' + element;
console.log(formRef);
var playerID = $(formRef).val();
console.log({'playerID': playerID}); // 633397
var btnRef = '#draftBtn-'+playerID;
console.log({'btnRef' : btnRef }); // '#draftBtn-633397'
var playerAttr = $(btnRef).attr('data-player');
console.log(playerAttr); // undefined
var playerData = $(btnRef).data('player');
console.log(playerData); // undefined
//do something with the data.....
//addPlayerToSquad($)
}, this);
}
使用'dataset'本地屬性。在這種情況下,'$(selector).get(0).dataset.player' –
不應該.attr('player-data')是.attr('數據播放器')? – peinearydevelopment
@peinearydevelopment是的,在實際的代碼中,它是 –