jQuery - 循环遍历表并获取宽度和设置父类

时间:2014-02-28 16:13:03

标签: javascript jquery html

漫长的一天所以我很可能错过了一些愚蠢的东西,但我想要做的是循环通过表格获得他们的宽度,然后在父元素上设置宽度但不做任何想法或看看我哪里出错?

HTML

<div class="vScroll">

  <table class="table-scroll">
   ....
  </table>

  <div class="box-bottom">stuff here</div>

</div>

<div class="vScroll">

  <table class="table-scroll">
   ....
  </table>

  <div class="box-bottom">stuff here</div>

</div>

<div class="vScroll">

  <table class="table-scroll">
   ....
  </table>

  <div class="box-bottom">stuff here</div>

</div>

JS

jQuery('.vScroll .table-scroll').each(function(i,el) {
  var $tableSize = jQuery(this).width();
  jQuery(this).parent('.box-bottom').css('width',$tableSize);
});

提前致谢!

2 个答案:

答案 0 :(得分:0)

试试这个

$('.vScroll .table-scroll').each(function(i,el) {
    var $tableSize = $(this).width();
    $('.box-bottom', $(this).parent()).css('width',$tableSize);
});

这似乎是你从

获得的
var $tableSize = $(this).width();

并不完全符合您的需要。它将返回包含表的父div的宽度。如果您真的想要选择表而不是div,请使用

$('.table-scroll').each(function(i,el) {

答案 1 :(得分:0)

通过一些小的改动,我认为我纠正了你的JS代码并创造了我认为是一个工作小提琴

http://jsfiddle.net/Xeb4S/2/

基本上,这是生成的JS

$('.vScroll .table-class').each(function() { var $tableSize = $(this).width(); $(this).siblings('.box-bottom').css('width',$tableSize); });

有一些改动,主要是在table HTML中添加一些正文并在选择器中提供正确的类名 - 但是如果参数设置为.each(),则也不需要将参数传递给$它们没有被使用,我将jQuery引用简化为siblings

我还使用.box-bottom直接设置.box-bottom项目的宽度?这是一个轻微的假设。你提到“设置父项的宽度” - 但{{1}}项是兄弟姐妹,而不是父母?

希望这有帮助。