影响JavaScript/CSS的HTML空间格式

Zil*_*lch 5 html javascript css

发生了什么......如果你改变HTML中不同标签之间的间距或换行符,就会导致JavaScript或CSS出现问题(不确定哪一个).

代码本身是仅使用HTML,JavaScript和CSS的基本可折叠列表.我意识到你可以用jquery等来做这件事.只是试图得到这个代码的解释.如果单击下面的jsfiddle链接,运行它,然后单击它将展开的标题,然后单击折叠.整理或更改间距并再次运行 - 单击时消失.

http://jsfiddle.net/7WPs6/46/

HTML

<div class='collapsibleCont'><h3 id='collapsible1' class='collapsibleTitle' onclick="handleCollapsible('collapsible1')">+ title</h3><p style="display:none" class='collapsibleContent'>hello</p>
Run Code Online (Sandbox Code Playgroud)

JavaScript的

function handleCollapsible(id) {
    var clickedTitle = document.getElementById(id);
    var contentC = clickedTitle.parentNode.childNodes[1];
    if (contentC.style.display == 'none') {
        contentC.style.display = 'block';
        var mysplittedtitle = clickedTitle.innerHTML.split(" ");
        var newTitle = "- " + mysplittedtitle[1];
        clickedTitle.innerHTML = newTitle;
    } else {
        contentC.style.display = 'none';
        var mysplittedtitle = clickedTitle.innerHTML.split(" ");
        var newTitle = "+ " + mysplittedtitle[1];
        clickedTitle.innerHTML = newTitle;
    }
}
Run Code Online (Sandbox Code Playgroud)

任何帮助或想法将不胜感激.

-

原始代码在下面的帖子中转到"Th0rndike".

如何使用phonegap获取android的可折叠列表视图

Hug*_*des 1

当更改空间或添加新行时,您将更改childNode

clickedTitle.parentNode.childNodes[1];
Run Code Online (Sandbox Code Playgroud)

你真正想要的是children[1]

所以你可以将代码更改为这样

clickedTitle.parentNode.children[1];
Run Code Online (Sandbox Code Playgroud)

有关 childNode 和 Children 之间的更多区别,您可以查看此链接:

JavaScript 中的 child 和 childNode 有什么区别?