我对此没有任何好运,我甚至似乎无法将一个类添加到第一个空的td单元格中,以便甚至尝试让它滚动
jsfiddle here https://jsfiddle.net/dxwd0qp0/16/
我需要在第一个空的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');
}
td信息是动态添加的,当我复制源html时出现,有一个html空间被添加到空td的“”
答案 0 :(得分:5)
正如i19所说,你的TD没有空。你有每个TD的细胞。 尝试删除它,你的jquery addClass函数将正常工作。 之后使用scrollTop参数
添加jquery animate方法调用 $('html, body').animate({
scrollTop: $(".scrollhere").offset().top
}, 2000);
编辑: 尝试使用以下代码删除:
$("td").each(function() {
var $this = $(this);
$this.html($this.html().replace(/ /g, ''));});
删除后,尝试使用上一个滚动。
请注意,这会从所有道明元素中删除& nbsp
答案 1 :(得分:4)
您可以使用.filter()
和.text()
(不会返回
个字符)来申请您的课程:
$("td")
.filter(function() {
return ($(this).text() === '');
})
.addClass("scrollhere");
答案 2 :(得分:1)
你的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)
});
参见演示 http://jsfiddle.net/dxwd0qp0/19/
<强>更新强> 如果你不能修改html,那就用这个
$(document).ready(function () {
$('td').each(function (i, elem) {
if ($(elem).html().trim() === ' ') {
$(elem).addClass("scrollhere");
}
});
$('html, body').animate({
scrollTop: $(".scrollhere:first()").offset().top
}, 2000);
});
参见演示 http://jsfiddle.net/dxwd0qp0/30/
更新2
如果您只想更新第一个空TD
,请使用以下标志:
$(document).ready(function () {
var foundOne = false;
$('td').each(function (i, elem) {
if ($(elem).html().trim() === ' ' && !foundOne) {
$(elem).addClass("scrollhere");
foundOne = true;
return;
}
});
$('html, body').animate({
scrollTop: $(".scrollhere:first()").offset().top
}, 2000);
});
更新了演示:
答案 3 :(得分:0)
这应该设定焦点。
$('table:td:empty:eq(0)').focus();
这应该设置类
$('table:td:empty:eq(0)').attr('class','className');