无法使用jquery.data()或.attr()来返回undefined

时间:2016-02-12 13:34:10

标签: javascript jquery html attr

我已经阅读了有关db.Cars.aggregate( [ { $unwind: '$Prices' }, { $match: { 'Prices.PriceType': 4 } }, { $group: { _id: '$CarPlate', valueMin: { $min: '$Prices.Value' }, valueMax: { $max: '$Prices.Value' } } }, { $sort: { valueMin: 1 } }, { $limit: 1 } ] ); .data()的其他问题,但没有一个答案对我有帮助。

我有一个带有一些按钮的表,每个按钮都有以下格式的id: .attr()其中player-*****是数字ID。

我也有一些隐藏的表单元素,我试图:

  • 从表单元素
  • 中读取值
  • 生成对我的div的引用,例如*****
  • 获取附加到按钮的数据。
  • 对数据执行某些操作....

我似乎无法将数据附加到我的div,总是返回undefined。

'#draftBtn-*****'.attr('player-data')都返回未定义。

我正在使用jQuery v1.12.0

表中的示例行:

.data('player)

我的javascript:

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

1 个答案:

答案 0 :(得分:-4)

FROM COMMENTS (将按钮用作事件):

因此,从表格行开始,我现在使用按钮作为事件的触发器,一个简单的测试将显示所有效果:

$(function() {

  $(".btn").click(function() {
      var tr = $(this).closest("tr").find("td:last div"),
        json = tr.data("player");

     alert('ID: ' + json.id + '\nTeam: ' + json.team);
 });

});

LIVE示例:http://jsbin.com/kojunibixa/1/edit?html,js,output

P.S。我仍然不明白使那些容易做的事情复杂化的想法...抱歉。