Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.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
Javascript 仅当存在';有足够的空间吗_Javascript_Jquery_Html_Css - Fatal编程技术网

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示例发布