在td内的DIV找不到父

时间:2016-11-23 14:03:18

标签: javascript jquery angularjs

我正在使用angularjs。 我的结构是这样的(在较大的表中 - 只显示一个单元格):

   <td>
    <div>
    <label>OU5NS1E2IE1L</label>
    <i class="fa fa-times" aria-hidden="true"
    ng-click="DeleteElementFromSession($event);"></i>
    </div>
  </td>

调用DeleteElementFromSession这行代码时:

$(event.currentTarget).parent()

返回DIV,这是正确的。但我想返回<td>元素,其中DIV在里面。我不知道为什么,调用这个不会返回<td>元素?它没有返回任何内容:

$(event.currentTarget).parent().parent()

<i>位于DIV内,DIV位于td内,所以在我看来,这应该有用,但事实并非如此。为什么呢?

3 个答案:

答案 0 :(得分:1)

根据Angular JS doc:

https://docs.angularjs.org/api/ng/function/angular.element

  

parent() - 不支持选择器

parent来自jqLit​​e,它包含一些jQuery函数。

根据jQuery doc:

https://api.jquery.com/parent/

  

此方法类似于.parents(),但.parent()仅传播a   单一级别的DOM树。

所以只允许一级旅行。

答案 1 :(得分:1)

浏览器正在从DOM中删除current <- 0 shinyServer(function(input, output) { corpus <- c("Sample sentence one", "Second sentence", "Third sentence") observeEvent(input$Next,{ if(current <= length(corpus)) output$content <- renderText(corpus[current]) current <<- current %% length(corpus) + 1 }) }) 节点,因为它不是合法的HTML。

<td>节点必须是<td><table>节点的子节点。

<tr>

然后浏览器将在DOM中包含 <table> <tr> <td id="tdNode1"> <div> <label>OU5NS1E2IE1L</label> <i class="fa fa-times" aria-hidden="true" ng-click="DeleteElementFromSession($event);">CLICK HERE</i> </div> </td> </tr> </table> 节点,<td>将找到elem.parent().parent()节点。

<td>

DEMO on JSFiddle

答案 2 :(得分:0)

为此你需要亲近的父母:

   $(event.currentTarget).parent().closest('td')