仅当表格中包含超过X量的“tds”时才将HTML添加到表中

时间:2012-09-28 12:11:48

标签: javascript jquery html

如果找到超过3个td元素,我试图将HTML块添加到表中,如果表的元素少于3个,则不执行任何操作。我已经遍历了表格,并且能够检查每个表格中有多少tds。

我尝试过使用.filter();和$ .each()但无法破解它。

所以:>>如何仅将HTML添加到传递if>的表中3声明?

我还在学习JavaScript和jQuery,所以请耐心等待。

这是迄今为止的代码:

var tbls = $("body").find("table.responsive").length;   
var data = Array();

for(var index = 0; index < tbls; index++){ 
    $("table.responsive").each(function(i, v){
        data[i] = Array();
        $(this).find("td").each(function(ii, vv){
            data[i][ii] = $(this).text();
    }); 
  })
}

data.forEach(function(item) { 
    if(item.length > 3) {

      //here I want to add the HTML, but it is applied to all tables
      $("table.responsive").before("<div style='position:relative;'><span class='MobiScroll'></span></div>");
    return false;          
     } 
});​

以下是演示:http://jsfiddle.net/design4lifeblog/gSPXu/15/

3 个答案:

答案 0 :(得分:1)

您不需要从body元素开始遍历并为此创建数组,您可以计算每个函数中的TD。

$("table.responsive").​each(function(){
    if ( $('td', this).length > 3) {
       $(this).before("<div style='position:relative;'><span class='MobiScroll'></span></div>");
    }
})​

答案 1 :(得分:1)

$(function(){
    $("table.responsive").each(function(){
    if ( $(this).find('td').length > 3) {
       $(this).before("<div style='position:relative;'><span class='MobiScroll'></span></div>");
        //alert($(this))
    }
})});

DEMO

答案 2 :(得分:0)

$("table.responsive").each(function(){
  if($(this).find('td').size() > 3)
    $(this).before("<div style='position:relative;'><span class='MobiScroll'></span></div>");
})

http://jsfiddle.net/pKWXZ/1/