Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.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/3/html/71.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 修改外部CSS值_Javascript_Html_Css - Fatal编程技术网

Javascript 修改外部CSS值

Javascript 修改外部CSS值,javascript,html,css,Javascript,Html,Css,您好,我正在尝试使用JavaScript动态更改除法的高度,但是如果使用HTML标记中的样式标记定义除法,我只能让JS读取除法的高度元素 如果它在一个单独的工作表中返回NaN,我假设是因为它找不到值,实际上返回null(我使用ParseInt使其工作) 以下是HTML: <div id="dropdown_container"> <div id="dropdown" style="height:100px;"> a </div> <

您好,我正在尝试使用JavaScript动态更改除法的高度,但是如果使用HTML标记中的样式标记定义除法,我只能让JS读取除法的高度元素

如果它在一个单独的工作表中返回NaN,我假设是因为它找不到值,实际上返回null(我使用ParseInt使其工作)

以下是HTML:

<div id="dropdown_container">
    <div id="dropdown" style="height:100px;">
    a
    </div>
</div>
有人知道这种(mis?)功能性的原因吗。还有解决办法吗

这是一本书


尝试将高度移到CSS上,以查看我遇到的问题。

ParseInt缺少基数

你说:

我只能让JS读取div的Height元素,如果 使用HTML标记中的样式标记定义

现在您只读取div的属性样式。您可以将其设置为内联。所以如果你把它去掉,你就不能再读了。有道理吗

您希望获得计算的高度。试试看:
.offsetHeight

使用inc.固定基数的测试用例的基础

更新:tada:已修复,请参阅


ParseInt缺少它的基数

你说:

我只能让JS读取div的Height元素,如果 使用HTML标记中的样式标记定义

现在您只读取div的属性样式。您可以将其设置为内联。所以如果你把它去掉,你就不能再读了。有道理吗

您希望获得计算的高度。试试看:
.offsetHeight

使用inc.固定基数的测试用例的基础

更新:tada:已修复,请参阅


不,NaN表示不是数字,不是空值。返回NaN意味着您试图以非文本的数字形式读取某些内容。
parseInt
自动删除
px
,但不应忽略
getHeight=parseInt(el.style.height,10)
如果
height
不是
auto
,则应该可以工作。传递要由
setTimeout
计算的字符串是不好的做法,传递函数调用时更是如此。最好传递函数引用
setTimeout(单击向下,15)在不进行评估的情况下执行相同的操作。你能试着在上面复制这个行为吗?@SomekidwithHTML我知道这意味着,它可能返回null,然后parseInt它试图把它变成一个数字back@wezternator是的,没错。null是返回的内容,并且
parseInt
试图将其作为数字读取。不,NaN表示不是数字,不是null。返回NaN意味着您试图以非文本的数字形式读取某些内容。
parseInt
自动删除
px
,但不应忽略
getHeight=parseInt(el.style.height,10)
如果
height
不是
auto
,则应该可以工作。传递要由
setTimeout
计算的字符串是不好的做法,传递函数调用时更是如此。最好传递函数引用
setTimeout(单击向下,15)在不进行评估的情况下执行相同的操作。你能试着在上面复制这个行为吗?@SomekidwithHTML我知道这意味着,它可能返回null,然后parseInt它试图把它变成一个数字back@wezternator是的,没错。null是返回的值,并且
parseInt
正在尝试将其作为数字读取。我不知道,谢谢!这个问题困扰了我很多年。我不知道,谢谢!这个问题困扰我很久了。
function clickDown() {
    var el = document.getElementById('dropdown');
    var maxHeight = 200;
    getHeight = parseInt(el.style.height.substring(0,(el.style.height.length)-2));
    console.log(getHeight);
    getHeight += 2;
    el.style.height = getHeight + 'px';
    timeoutHeightInc = setTimeout('clickDown()',15);
    if(getHeight >= maxHeight){
        clearTimeout(timeoutHeightInc);

    }
}
function clickDown() {
    var el = document.getElementById('dropdown');
    var maxHeight = 200;
    getHeight = parseInt(el.offsetHeight,10);
    console.log(getHeight);
    getHeight += 2;
    el.style.height = getHeight + 'px';
    timeoutHeightInc = setTimeout('clickDown()',15);
    if(getHeight >= maxHeight){
        clearTimeout(timeoutHeightInc);

    }
}