为什么没有.attr工作,但.getAttributes呢?

时间:2016-08-30 08:56:39

标签: javascript jquery

我无法弄清楚为什么attr()不起作用,getAttribute()会起作用。有人可以告诉我为什么我会遇到这个问题吗?这是代码:

$('#assignAssetBtn').on('click', function () {
    tableTools = $('#Grid').DataTable();
    $.each(tableTools.$('td input', { 'filter' : 'applied' }), function (idx, data) {
        // $.each(tableTools.fnGetSelectedData(), function (idx, data) { // this was not working so I changed the code a little bit 
        if (this.checked == true) {
            debugger;
            assetList.push({ 
                'id': data.value, 
                'name': (data).getAttribute('name') 
            });
        }
    });
});

 $('#assignAssetBtn').on('click', function () {
        tableTools = $('#Grid').DataTable();
        $.each(tableTools.$('td input', { 'filter' : 'applied' }), function (idx, data) {
            // $.each(tableTools.fnGetSelectedData(), function (idx, data) { // this was not working so I changed the code a little bit 
            if (this.checked == true) {
                debugger;
                assetList.push({ 
                    'id': data.value, 
                    'name': $(data).attr('name') 
                });
            }
        });
    });

我已尝试使用$(数据),但这不起作用

2 个答案:

答案 0 :(得分:0)

你错过了' $'代码中的别名,它是对jQuery函数的引用。 它的工作原理如下:

$(selector).action()

因为' attr()'函数是jQuery,你需要引用它。

尝试:

assetList.push({ 'id' : data.value, 'name' : $(data).attr('name') });

答案 1 :(得分:0)

尝试:

assetList.push({ 'id' : data.value, 'name' : $(data).attr('name') });

您必须在开头使用美元符号才能访问jquery。你可以在这里找到jquery文档: Jquery Syntax Documenatation