Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.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 jQuery无法使用.parent()获取父元素_Javascript_Jquery_Html_Ajax - Fatal编程技术网

Javascript jQuery无法使用.parent()获取父元素

Javascript jQuery无法使用.parent()获取父元素,javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,我是JavaScript和jQuery的新手 我正在写一个网站,它使用AJAX更新服务器上文件的等级。其思想是,当我得到响应(即成功或失败)时,我应该更新表中的一些值。然而,我遇到了很多麻烦,因为我似乎无法正确地在DOM中导航 我的HTML感兴趣的片段如下: <tr> <td><a href="some_url">some_name</a></td> <td>Yes</td> <td

我是JavaScript和jQuery的新手

我正在写一个网站,它使用AJAX更新服务器上文件的等级。其思想是,当我得到响应(即成功或失败)时,我应该更新表中的一些值。然而,我遇到了很多麻烦,因为我似乎无法正确地在DOM中导航

我的HTML感兴趣的片段如下:

<tr>
    <td><a href="some_url">some_name</a></td>
    <td>Yes</td>
    <td>Tag</td>
    <td>0</td>
    <td>0</td>

    <td><button value="UP" onClick="rate(this, 'some_key', 'upvote', 'some_url' );">
            <span class="glyphicon glyphicon-thumbs-up" style="font-size: 1.2em"></span>
        </button>
      <button value="DOWN" class="btn btn-default down_vote_button table-buttons" onClick="rate(this, 'some_key', 'downvote', 'some_url' );">
            <span class="glyphicon glyphicon-thumbs-down" style="font-size: 1.2em"></span>
        </button>
      </td>
</tr>
我的想法是,如果服务器有一个成功的返回代码,那么我会传递一个对触发操作的按钮的引用(因此是rate(this,…)调用),然后我应该得到该按钮的父级,最后是正确的索引,这样我就可以得到里面的文本。然而,由于某种原因,我从来没有真正得到文本。我试着只得到按钮的父按钮,但我也不能得到它

请注意,该表应该有许多条目,并且根据存储在数据库中的内容而有所不同

非常感谢您的帮助


谢谢

首先,您的按钮没有父按钮('tr'),它的父按钮是一个
。一个元素只有一个父元素,即它所包含的单个元素

我猜你想要的是:

var upvotes = $(caller).closest("tr").find('td').eq(3).text();
这将查找树中最近的
tr
,然后使用
find
查找该行中的
td
,索引为3


参考:
parent()
只查找一个级别。如果要查找最近的父级(不一定是直接的父级),请使用
最近的()
var downvoates
,然后在第二个警报中使用
upvoates
。@rfornal实际上它使用了另一个似乎未定义的变量,我怀疑他是想使用
downvoates
,而不是
upvoated
。非常感谢您的帮助。这就成功了。正如我所说的,我对jQuery是新手,所以我认为.parent()将获得最接近的父对象。
var upvotes = $(caller).closest("tr").find('td').eq(3).text();