children.clientWidth从窗口获取属性,而不是从元素

时间:2018-01-05 13:20:03

标签: javascript jquery

这件奇怪的事情正在发生,似乎无法解决它。

为了调整屏幕上的ul元素,我需要让它的子宽度。

我试图用下面的函数来做到这一点,但是不是从元素li中获取属性,而是将它放在其他地方。不知道从哪里来。它不完全是窗口,而是接近。当我调整窗口大小时,图形会发生变化,但总是不会超出窗口宽度。

正如您在代码中看到的那样,我正在验证它是否获得了正确的元素。

function adjustTabs() {
   var myUl = document.getElementById("tabname");

   for (var i = 0; i < myUl.children.length; i++) {
     console.log(i); // correct output
     console.log(myUl.children[i]); //correct output 
     console.log('width',myUl.children[i].clientWidth); // wrong output
   }
};

$(function () {
    adjustTabs();
}); 

这是上面第二个console.log实例的部分输出,即

  

的console.log(myUl.children [I]);

li.tab
    accessKey: ""
    accessKeyLabel: ""
    attributes: NamedNodeMap [ class="tab" ]
    baseURI: "http://localhost/marques-voiture/BMW"
    childElementCount: 3
    childNodes: NodeList [ #text, input#tab1, #text, … ]
    children: HTMLCollection [ input#tab1, label, div#tab-content1.content ]
    classList: DOMTokenList [ "tab" ]
    className: "tab"
    clientHeight: 29
    clientLeft: 0
    clientTop: 0
    clientWidth: 138
    contentEditable: "inherit"
    contextMenu: null
    .......

所以,对于这个,它应该输出138,但它输出类似1500的东西。它为li元素的所有实例输出相同的数字(在这种情况下为1500)。

任何想法

由于

0 个答案:

没有答案