2

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

我试过使用 .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/

4

3 回答 3

1

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

$("table.responsive").​each(function(){
    if ( $('td', this).length > 3) {
       $(this).before("<div style='position:relative;'><span class='MobiScroll'></span></div>");
    }
})​
于 2012-09-28T12:15:35.730 回答
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))
    }
})});

演示

于 2012-09-28T12:27:01.617 回答
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/

于 2012-09-28T12:26:17.983 回答