如果使用jquery访问此属性,给定由此定义的div

时间:2012-03-27 14:50:51

标签: javascript jquery html

我有一个div,通过这个定义。想象一下,它是下面的var div:

<td itemid='desired number'>
  <div>div 1</div>
  <div class="action">div 2</div>
</td>

鉴于var div,我如何计算包含它的td的itemid属性。注意,我不想要一个直接访问itemid属性的解决方案,它需要包含div 2的itemid。

var div = $('.action')

我尝试过使用parent()但没有成功。

感谢。

9 个答案:

答案 0 :(得分:3)

尝试

var itemidValue = $('.action').parent('td').attr('itemid');

概念证明:http://jsfiddle.net/AwM56/

答案 1 :(得分:2)

您可以尝试使用parent()并指定要查找的内容,而不是使用.parent()

示例:

 $(".action").parents("td") // will return the TD element

证明:http://jsfiddle.net/9LQB3/

我使用parents()方法而不是parent(),因为parents()看起来更高层次, 而不只是直接的父母。

答案 2 :(得分:2)

如果您要使用自定义属性,则应该使用HTML5 data-*属性,因此请改用data-itemid='desired number',然后使用.data()而不是{{1函数来获取值。

HTML:

.attr()

jQuery的:

<td data-itemid='desired number'>
  <div>div 1</div>
  <div class="action">div 2</div>
</td>

答案 3 :(得分:1)

您是否尝试过使用div.closest('td')

答案 4 :(得分:1)

.parent()应该没问题。

试试这个:

<html>
  <head>
    <script type="text/javascript" src="jquery.min.js"></script>
    <script type="text/javascript">
      $(function() {
          var div = $('.action');
          console.log('HEP: ' + $(div).parent().attr('itemid'));
      });
    </script>
  </head>
  <body>
    <table>
      <tr>
        <td itemid='desired number'>
          <div>div 1</div>
          <div class="action">div 2</div>
        </td>
      </tr>
    </table>
  </body>
</html>

答案 5 :(得分:0)

试试这个var itemID = $('.action').parent().attr('itemid');

答案 6 :(得分:0)

你提到你试过parent,但没有一个不起作用的例子,并且我倾向于认为它应该有效,我可以建议:

var val = div.parent().attr('itemid');

答案 7 :(得分:0)

$('div.action').parents('td').attr('itemid');应该这样做。顺便说一句,该itemid属性无效。可能最好使用数据属性。

答案 8 :(得分:0)

尝试以下jQuery语句:

$("TD[itemid='desired number']:has(.action)")