Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何滚动到第一个td空_Jquery - Fatal编程技术网

Jquery 如何滚动到第一个td空

Jquery 如何滚动到第一个td空,jquery,Jquery,我在这方面运气不好,我甚至无法在第一个空td单元中添加一个类,以便让它滚动 我在这儿闲逛 我需要向第一个空td单元添加一个类,然后我希望在pageload上让div滚动到该空单元 但我连第一步都做不到 $( "td:empty" ).addClass( "scrollhere" ); 还有这个 if ($('td').text().trim() == ""){ $(this).addClass('scrollhere'); } if ((td.children().length == 0

我在这方面运气不好,我甚至无法在第一个空td单元中添加一个类,以便让它滚动

我在这儿闲逛

我需要向第一个空td单元添加一个类,然后我希望在pageload上让div滚动到该空单元

但我连第一步都做不到

$( "td:empty" ).addClass( "scrollhere" );
还有这个

if ($('td').text().trim() == ""){
  $(this).addClass('scrollhere');
}
if ((td.children().length == 0) && td.text().trim() == ""){
  $(this).addClass('scrollhere');
}
还有这个

if ($('td').text().trim() == ""){
  $(this).addClass('scrollhere');
}
if ((td.children().length == 0) && td.text().trim() == ""){
  $(this).addClass('scrollhere');
}

td信息是动态添加的,并在我复制源html时显示,有一个html空间被添加到空td的“

这应该设置焦点

$('table:td:empty:eq(0)').focus();
这应该是一个很好的例子

  $('table:td:empty:eq(0)').attr('class','className');

您的TD不是空的;它们包含

您需要添加

$(document).ready(function () {
    $("td:empty").addClass("scrollhere");
    $('html, body').animate({
        scrollTop: $(".scrollhere").offset().top
    }, 2*1000); // <-- in miliseconds (2 seconds, update if you want to scroll faster)
});
见演示

更新2

如果只想更新第一个空的
TD
,请使用如下标志:

$(document).ready(function () {
    var foundOne = false;

    $('td').each(function (i, elem) {
        if ($(elem).html().trim() === '&nbsp;' && !foundOne) {
            $(elem).addClass("scrollhere");
            foundOne = true;
            return;
        }
    });

    $('html, body').animate({
        scrollTop: $(".scrollhere:first()").offset().top
    }, 2000);
});
更新的演示:


正如我19所说的,您的TD中没有一个是空的。您在每个TD ceil中都有。 尝试删除它,jquery addClass函数将正常工作。 之后,添加带有scrollTop参数的jquery动画方法调用

   $('html, body').animate({
    scrollTop: $(".scrollhere").offset().top
}, 2000);
编辑: 尝试使用以下代码删除nbsp:

$("td").each(function() {
var $this = $(this);
$this.html($this.html().replace(/&nbsp;/g, ''));});
删除nbsp后,请尝试使用“上一个”滚动

请记住,这将从所有TD元素中删除您可以使用
.filter()
.text()
(不会返回
字符)来应用您的类:

$("td")
    .filter(function() {
        return ($(this).text() === '');
    })
    .addClass("scrollhere");

(使用)

您的
中没有一个是空的。
$(此)
不是指每个
td
吗?这并没有将类应用于每个元素。Robbie太激动了。不幸的是,我无法控制将生成的html更改为此报表,我不知道为什么要添加html空间,所以我需要查找第一个空td或第一个只带html空间的td如果
字符是故意的怎么办?是的,你是完全正确的,我在回复中所说的将从TD CEIL中删除所有Robbie Averill解决方案。这是最好的解决方案,我想只有第一个?在调用
.addClass()
之前添加
.eq(0)
。或者,您只能将该类添加到筛选器中的第一个匹配项,如更新的fiddle:ochi,我添加了一些HTML以匹配现有站点,并应用了您的解决方案。我的容器设置为固定高度,并将溢出设置为滚动,现在您的解决方案将不会自动滚动到div中的td-您可以进一步帮助吗?这应该是另一个单独的问题。我现在没有太多的时间,但这里有一个快速修复-这是一个有点黑客,但它可能会为你暂时工作。如果你再补充一个问题,让我知道,这样我可以在今天晚些时候有更多时间的时候花更多的时间在上面