2013-03-05 68 views
1

HTML结构是:如何在jQuery中查找内部元素的高度?

<table class='cls_Name'> 
    <tr> 
     <td>Name</td> 
    </tr> 
    <tr> 
     <td> 
      <div>some operation/text</div> 
     </td> 
    </tr> 
</table> 

为了让我在下面做表的高度:

$('.cls_Name').height(); 

它返回正确的值。

现在我想div的高度:

$('.cls_Name').children('td:nth-child(2)').children('div').height(); 

但它返回null或有时也给出了错误。

请让我知道,如果任何人有关于它的想法。

在此先感谢

回答

2

尝试以下操作:

$('.cls_Name td:eq(1)').find('div').height(); 
+0

那'​​'是整个'

'中的第二个'​​',但是第一个''(它的父母) - 你确定':n-child(2)'要选择它吗?由于[this jsFiddle](http://jsfiddle.net/6hqb4/)显示,它不是该元素的正确选择器。 – 2013-03-05 11:31:44

+0

真的这只是一个小改写,应该已经测试过了,改了 – 2013-03-05 13:00:48

+0

我也不确定。在我做的一个代码中,它在SharePoint中。所以我没有得到html结构。我刚刚申请,它的工作。不知道它是在单一的tr或不同的tr ....但你提供的解决方案是有效的。谢谢! – 2013-03-06 04:24:13

5

<td>元素的后裔,但儿童<table>元素。 .children()函数只在DOM中下降一个级别 - 所以在这种情况下,到<tr>元素的级别。而不是尝试以下操作:

$('.cls_Name').find('td:eq(1)').children('div').height(); 
+0

这确实是一个工作解决方案。在这里看到一个小提琴。 http://jsfiddle.net/B5avM/ – 2013-03-05 11:36:22

+0

谢谢,这已完成。 但我对其后代td有怀疑。 当我使用如下所示的td: $(this).children(“td:nth-​​child(4)”)。css(“font-size”,“10px”); $(this).children('td:n-child(6)')。children(“div”)。css('text-align','center'); 它的工作....但是当使用相同的高度(),它不? – 2013-03-06 03:54:26

+0

@HarishHatnapure很难知道问题是什么,没有看到完整的HTML代码正在执行。 – 2013-03-06 09:34:57

0

因为.children('td:nth-child(2)')不存在尝试.children('td:nth-child(1)')代替。

测试的代码

<script type="text/javascript"> 

    $(function() 
    { 
     console.log($('.cls_Name').find('td:nth-child(1)').find('div').height()); 
    }); 

</script> 
<table class='cls_Name'> 
    <tr> 
     <td>Name</td> 
    </tr> 
    <tr> 
     <td> 
      <div>some operation/text</div> 
     </td> 
    </tr> 
</table> 

所示我20console.log();

0

你可以更好的div元素指定类的名称和尝试这个办法:

<table class='cls_Name'> 
    <tr> 
     <td>Name</td> 
    </tr> 
    <tr> 
     <td> 
      <div class="operation">some operation/text</div> 
     </td> 
    </tr> 
</table> 

脚本:

$('.operation').height() 
+0

没有我coluldnt应用类,因为我必须动态生成div的高度,也没有它的类名称。 – 2013-03-06 04:25:09

0

这将是更好,我想:

$(document).ready(function() 
{ 
    var sa = $('.cls_Name').find('div').height(); 
    alert(sa); 


});