得到td父母和tr孩子

时间:2015-05-11 23:11:04

标签: javascript html-table

我需要从第一个TD点击按钮获得值“TEST1”。我尝试了Javascript但它不起作用..打印给了我undefined。

   <table style="width:100%">
        <tr>
            <td>TEST1</td>
            <td>TEST2</td>
            <td><button class='x' type='button' onclick='openindex()' >value='button'</button></td>
        </tr>   
    </table>

这是我的Javascript函数,我无法弄清楚我做错了什么,因为我找到了最接近的Tr但子属性不起作用

function openindex(){
    var $row = $(this).closest("tr");
        $tds = $row.find("td:nth-child(1)").value;
 alert($tds);
}

2 个答案:

答案 0 :(得分:1)

您在没有显式上下文的情况下调用openindex(),因此this(在其中)将是window而不是元素。

你可以通过它:

onclick="openindex.call(this)"

但您应该首先避免使用onclick属性,而是将您的函数与jQuery().on绑定。

jQuery('button').on('click', openindex);

答案 1 :(得分:0)

我认为你只需要使用

$tds = $row.find("td:nth-child(1)").text();

而不是

$tds = $row.find("td:nth-child(1)").value;

您还应该使用var关键字来设置变量,使其不是全局变量,因为它只是返回一个字符串,所以不需要$ so

 var tds = $row.find("td:nth-child(1)").text();

或者另一种方式是

$('.x').click(function () {
    var $row = $(this).closest("tr");
    var tds = $row.find('td').first().text();
    alert(tds);
 })