Javascript 仅当存在';有足够的空间吗
我有一个包含不同消息的表,一个表行始终包含一条消息。消息的标题中还包含名称和时间。消息/表行宽度是可变的,因此如果宽度太小,则没有足够的空间容纳名称和时间。这就是为什么我试图创建一个脚本,如果没有足够的空间,它会将Javascript 仅当存在';有足够的空间吗,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一个包含不同消息的表,一个表行始终包含一条消息。消息的标题中还包含名称和时间。消息/表行宽度是可变的,因此如果宽度太小,则没有足够的空间容纳名称和时间。这就是为什么我试图创建一个脚本,如果没有足够的空间,它会将.time设置为display:none 这就是我到目前为止得到的。不幸的是,它不起作用 $( "tr" ).each(function() { var width = $(this).width(); var name = $( ".name" ).width();
.time
设置为display:none
这就是我到目前为止得到的。不幸的是,它不起作用
$( "tr" ).each(function() {
var width = $(this).width();
var name = $( ".name" ).width();
var time = $( ".time" ).width();
var total = name + time;
if ( total >= width ) {
$( ".time" ).css( "display", "none" );
}
});
您正在搜索具有.name/.time类而不是当前元素子级的元素的所有实例。试试smth。像这样:
$( "tr" ).each(function() {
var $this = $(this);
var width = $this.width();
var wname = $this.find( ".name" ).width();
var time = $this.find( ".time" );
if ( wname + time.width() >= width ) {
time.css( "display", "none" );
}
});
您还可以尝试将time和name都设置为display:inline block,然后将tr设置为overflow-y:hidden,如果tr height是固定的并且等于name/time height,那么您忘记了在每个jQuery调用中包含container元素:
var name = $(".name", this).width();
var time = $(".time", this).width();
在代码中,您没有选择要运行代码的元素
如果你能看到你的HTML和CSS被摆弄,看看它是否真的有效,那就太好了。同时,请看,我在哪里使它与
ul
元素一起工作。此代码何时执行?你调试过吗?变量的值是什么?用html示例发布