jquery在表中运行,并且仅在2x TDs时执行某些操作

jquery在表中运行,并且仅在2x TDs时执行某些操作,jquery,expand,Jquery,Expand,我遇到了一个特殊的“问题”。Ti接受客户的请求,我需要执行以下操作。浏览页面上的所有表格。对于每个表,检查其是否正好有2个TD。如果是这样的话,那么我需要做一个“阅读更多”的实现 我在另一个页面上使用了这个,我知道我想要折叠和扩展的确切div $(".more-block").each(function(){ if ($(this).height() > adjustheight){ id = this.id; id = id.split("_");

我遇到了一个特殊的“问题”。Ti接受客户的请求,我需要执行以下操作。浏览页面上的所有表格。对于每个表,检查其是否正好有2个TD。如果是这样的话,那么我需要做一个“阅读更多”的实现

我在另一个页面上使用了这个,我知道我想要折叠和扩展的确切div

$(".more-block").each(function(){
    if ($(this).height() > adjustheight){
        id = this.id;
        id = id.split("_");
        $("#expand"+id[1]).toggle(function() {
                id = this.id;
                $(".more-block"+id).css('height', 'auto').css('overflow', 'visible');
                $('html, body').animate({scrollTop: $(document).height()}, 'slow');
                $("#"+id).attr('src',path+'/images/expand2.png');
                $(".frontpage_box").css('height', '');
            }, function() {
                id = this.id;
                $("#"+id).attr('src',path+'/images/expand.png');
                $(".more-block"+id).animate({height: adjustheight}, "slow", function(){
                    $(".more-block"+id).css('height', adjustheight).css('overflow', 'hidden');
                });         
        });
    };
});

$(".more-block").css('height', adjustheight).css('overflow', 'hidden');
有什么想法吗? 当我运行TD时,我可以只添加类“更多更少”和“更多更少的sexpand1”(数字是增量)。这可能吗?我不知道如何运行这些表,只有在找到两个TD时才这样做,并且只在第二个TD上执行最后一位

哦,顺便说一下。。。重要的是,这只是第二个崩溃和扩张的TD。左边的那个是不允许的。如果有人能帮我找到感兴趣的TD,我也许能解决最后一点

请帮忙

“如果有人能帮我找到感兴趣的TD,我也许能解决这最后一点。”

假设您没有嵌套表,类似这样的内容将找到感兴趣的表:

$("table").each(function() {
   var $tds = $(this).find("td");
   if ($tds.length != 2)
       return;
   // this is a table with exactly two cells, so do something
   // $tds.eq(0) will reference first td;
   // $tds.eq(1) will reference second td;
   // So to add the classes to the second cell...
   $tds.eq(1).addClass("more-less more-lessexpand1");
});

你被困在哪一部分?查找正好有两个
td
元素的
元素?
阅读更多内容
实施..?首先,设置一个,其次,你确定你应该为客户做这类工作吗?我一直在寻找TD的问题@nnnnnn似乎发布了一个解决方案,我将尝试。还有阿德内奥-奥赫。。。欢迎您随时提供其他解决方案,这将非常有帮助。。。不需要其他的部分…谢谢,我要试一试。不客气。让我祝贺你的“尝试”态度。很多人都在网上发帖,希望别人能为他们实施完整的解决方案,所以看到有人在寻求提示和指导,并打算自己进行实验和做其他事情,这真是太好了。游戏和尝试是编程的全部。谢谢m8:)现在一切都很好,其余的我都弄明白了。我有一个快速的后续问题。如果我在一张桌子里面有一张桌子,这就失败了。然后计算更多TD。是否仍要忽略表中的表或至少对新表本身进行计数?您可以尝试使用
$(this).children(“tr”).children(“td”)
而不是
$(this).find(“td”)
,因为
.find()
(取决于选择器)返回所有子体,但
.children()
仅返回直接子体。(我首先使用
.find()
的原因是我不太确定
tbody
如何适应这里的情况。您可能需要将外部选择器更改为
table>tbody
)。Adeneo我还没有尝试您的解决方案。。。NNNN的解决方案有效。你的答案有很大的不同吗?有什么我应该知道的吗?我觉得这不太管用。
.filter()
部分将找到页面上所有正好有两个单元格的表元素,到目前为止还不错,但是
.find('td').last().addClass(…)
将只应用于最后一个表的最后一个单元格,而不是每两个单元格表的最后一个单元格。@nnnnnn-是的,我在发布它时注意到了,但是完全忘记了编辑它,应该包装在$.each()函数中才能正常工作。
$('table').filter(function(
    return $('td', this).length==2;
)).find('td').last().addClass('more-less more-lessexpand1');