Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从td获取数据属性返回未定义_Javascript_Jquery - Fatal编程技术网

Javascript 从td获取数据属性返回未定义

Javascript 从td获取数据属性返回未定义,javascript,jquery,Javascript,Jquery,我不确定这是否正确,但我正在尝试从td而不是tr获取data属性。我已经有了数据id属性 试试这个 var curr_row = $(this).parent('tr').attr('data-id'); 试试这个 var curr_row = $(this).parent('tr').attr('data-id'); 很难理解这个代表什么。 但如果输入了$(此),则应为: var curr_row = $(this).parents('tr').attr('data-id'); var

我不确定这是否正确,但我正在尝试从
td
而不是
tr
获取
data
属性。我已经有了数据id属性


试试这个

var curr_row = $(this).parent('tr').attr('data-id');
试试这个

var curr_row = $(this).parent('tr').attr('data-id');

很难理解这个
代表什么。 但如果输入了
$(此)
,则应为:

var curr_row = $(this).parents('tr').attr('data-id');
var curr_comp = $(this).parent().data('company'); //<-- parent() added
var curr_row = $(this).parent('tr').attr('data-id');
var curr_comp = $(this).data('company');

很难理解这个代表什么。 但如果输入了
$(此)
,则应为:

var curr_row = $(this).parents('tr').attr('data-id');
var curr_comp = $(this).parent().data('company'); //<-- parent() added
var curr_row = $(this).parent('tr').attr('data-id');
var curr_comp = $(this).data('company');
链接的
parent()
调用在DOM中的位置过高,无法获取父
tr
元素。相反,您可以使用
closest()
。还要注意,使用
data()
检索数据属性是更好的做法。试试这个:

var $row = $(this).closest("tr");
var rowid = $row.data('id');
var company = $(this).closest('td').data('company');
这里有一个完整的例子

$('.expandlink_admin').on('click', function() {
    var $row = $(this).closest("tr");
    var rowid = $row.data('id');
    var company = $(this).closest('td').data('company');

    $.ajax({
        url: '/manager/administrator/users/count_agents',
        type: 'POST',
        dataType:'json',
        data: {
            id: rowid    
        },
        cache: false,
        success: function(result) {
            $(".subtable").each(function() { //loop through each row
                if ($("[type='hidden']", this).val() == rowid) { 
                    $(this).show();
                    $row.find('.expandlink_admin').hide();
                    $row.find('.shrinklink_admin').show();
                }
            });
        }
    });
});
链接的
parent()
调用在DOM中的位置过高,无法获取父
tr
元素。相反,您可以使用
closest()
。还要注意,使用
data()
检索数据属性是更好的做法。试试这个:

var $row = $(this).closest("tr");
var rowid = $row.data('id');
var company = $(this).closest('td').data('company');
这里有一个完整的例子

$('.expandlink_admin').on('click', function() {
    var $row = $(this).closest("tr");
    var rowid = $row.data('id');
    var company = $(this).closest('td').data('company');

    $.ajax({
        url: '/manager/administrator/users/count_agents',
        type: 'POST',
        dataType:'json',
        data: {
            id: rowid    
        },
        cache: false,
        success: function(result) {
            $(".subtable").each(function() { //loop through each row
                if ($("[type='hidden']", this).val() == rowid) { 
                    $(this).show();
                    $row.find('.expandlink_admin').hide();
                    $row.find('.shrinklink_admin').show();
                }
            });
        }
    });
});

$(文档).ready(函数(){
//$(“#dvTable”).hide();
$(“#btnGenerate”)。单击(函数(){
深交所=“”
szTr=szTr+“第一”
szTr=szTr+“公司”
szTr=szTr+“”
szTr=szTr+“”
szTr=szTr+“”
szTr=szTr+“”
szTr=szTr+“”
szTr=szTr+“”
szTr=szTr+“”
$(#display tbody')。追加(szTr);
});
$('body')。在('click','expandlink_admin',函数(){
var curr_row=$(this.parent().parent('tr').attr('data-id');
警报(当前行)
});
});

$(文档).ready(函数(){
//$(“#dvTable”).hide();
$(“#btnGenerate”)。单击(函数(){
深交所=“”
szTr=szTr+“第一”
szTr=szTr+“公司”
szTr=szTr+“”
szTr=szTr+“”
szTr=szTr+“”
szTr=szTr+“”
szTr=szTr+“”
szTr=szTr+“”
szTr=szTr+“”
$(#display tbody')。追加(szTr);
});
$('body')。在('click','expandlink_admin',函数(){
var curr_row=$(this.parent().parent('tr').attr('data-id');
警报(当前行)
});
});


此是指什么?查看整个事件处理程序会有所帮助。
$(this).最近('tr').attr('data-id')
请尝试以下方法,单击此按钮将获得父行及其
attr
您需要为问题提供更多上下文,此代码段放在何处?抱歉,不知道信息不够。我已经从data-id中获得了正确的项目。我想从位于TDA的data company中获得公司名称。感谢您更新此问题-我为您添加了一个答案。此是指什么?查看整个事件处理程序会有所帮助。
$(this).最近('tr').attr('data-id')
请尝试以下方法,单击此按钮将获得父行及其
attr
您需要为问题提供更多上下文,此代码段放在何处?抱歉,不知道信息不够。我已经从data-id获得了正确的项目。我想从位于TDA的data company获得公司名称。感谢您更新问题-我为您添加了一个答案。我已经更新了代码$这是指正在被点击的td。您使用
$('.expandlink_admin')。在('click',function(){
。在您的代码中
expandlink_admin
input
内部
td
所以
$(此)
input
。您必须使用:
var curr row=$(此)。家长('tr').attr('data-id');var curr=(this).parent().data('company');
我已经更新了代码。$这是指正在被点击的td。你使用
$('.expandlink_admin')。在('click',function(){
。在你的代码中
expandlink_admin
内部
td
所以
$(这)
指的是
input
。您必须使用:
var curr\u row=$(this).parents('tr').attr('data-id');var curr\u comp=(this).parent().data('company'))
Hi,谢谢你的帮助。我已经更改了它,ID出现了。但是,该公司仍然没有出现。它仍然说undefinedWhat specific is not working?你检查过控制台有没有错误吗?我已经更新了问题中的代码。嗯,我可以问一下为什么有些变量后面有$吗?这只是一个命名约定,用来表示变量Ble包含一个jQuery对象。您好,我再次更新了代码。但是,由于某些原因,控制台只是打印了id。您好,谢谢您的帮助。我已经更改了它,id出现了。但是,该公司仍然没有出现。它仍然说undefinedWhat特别不起作用?您检查了控制台的错误吗?我已经在q中更新了我的代码uestion.嗯,我可以问一下为什么有些变量后面有$吗?这只是一个命名约定,表明变量包含jQuery对象。您好,我再次更新了代码。但是,出于某些原因,控制台只是打印了id。为什么您需要为同一个问题发布两个答案?@guradio仍然是海报ddnt响应为什么您需要发布同一个问题有两个答案?@guradio仍然是海报ddnt的回应者