Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.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_Css - Fatal编程技术网

Javascript 访问CSS高度值(通用方法)?

Javascript 访问CSS高度值(通用方法)?,javascript,css,Javascript,Css,我需要知道是否有可能使这个代码片段的heightVal变量通用。这意味着我需要它访问作为box参数传入的任何元素的高度,并将其存储,以便可以使用它将元素重置为其原始高度。使用offsetHeight属性对我不起作用,因为当第二次访问函数时,该值会自动重置。我试图使这个函数普遍适用于任何元素 function expand(box){ var heightVal = document.styleSheets[0].cssRules[3].style.height; if(box.styl

我需要知道是否有可能使这个代码片段的heightVal变量通用。这意味着我需要它访问作为box参数传入的任何元素的高度,并将其存储,以便可以使用它将元素重置为其原始高度。使用offsetHeight属性对我不起作用,因为当第二次访问函数时,该值会自动重置。我试图使这个函数普遍适用于任何元素

function expand(box){
  var heightVal = document.styleSheets[0].cssRules[3].style.height;

  if(box.style.height != "20px"){
    box.style.height = "20px";
  }
  else{
    box.style.height = heightVal;
  }
}

为什么不将其作为属性存储在DOM节点上

不要执行var heightVal=,而是执行box.my_height=。或者,如果您真的不喜欢只使用JS,您甚至可以使用HTML5数据XXX属性

function expand(box){
  if(box.style.height != "20px"){
    box.my_old_height = box.style.height;
    box.style.height = "20px";
  }
  else{
    box.style.height = box.my_old_height;
  }
}

@Proude_to_be_Noob box是一个表示DOM节点的Javascript对象。像任何Javascript对象一样,您可以在其上设置任意属性,包括您自己创建的属性。是的,我刚刚这样做了,它可以工作,但是当我使用具有不同高度的不同元素时,如何使其工作,而无需复制代码和更改文档。我使用它的每个div的样式表连接?这是主要的问题,我希望代码能够普遍地最小化和还原我传递给函数的任何或其他元素。@Proude\u to\u be\u Noob I。。。如果你能从DOM节点保存和恢复元素之前的高度,我就不明白你是如何使用document.stylesheet的。好吧,这正是我要问的,我如何避免使用document.stylesheet我不想使用它。我已经试过box.my_height=box.offsetHeight不起作用,我也试过很多其他方法,比如var myHeight=box.style.height,但只有当我将高度声明为内联样式时,它才起作用,我想将其保留在外部样式表中。@Proude_to_Noob我已经为我的建议粘贴了一些代码。我仍然不明白document.stylesheet如何或为什么会在那里。。。