0

私はしばらくこれに取り組んでいて、それをクラックすることができないようです..関数を介して渡されるものの他に、兄弟のdivを非表示にしようとしているjavascriptがあります。これがhtmlです:

<div id = "chat_content">
    <div id = "chat_content_1">This is div one</div>
    <div id = "chat_content_2">This is div two</div>
    <div id = "chat_content_3">This is div three</div>
</div>

そしてここにjavascriptがあります:

    function showGroup(id)
    {
        // show the the div that was clicked 
        var e = document.getElementById(id);
        e.style.display = 'block';

        // hide the others divs under the same parent
        var children = e.parentNode.childNodes;
        for (var i = 0; i < children.length; i++)
        {
            if (children[i] != e)
            {
                children[i].style.display = 'none';
            }
        };
    }

ありがとう!と幸せな休日:)

4

2 に答える 2

0

jQueryの使用を検討してください。生活を楽にします。こちらをチェックしてください

$("div#chat_content").siblings().css("display", "none");
于 2009-12-24T23:49:01.867 に答える
0

使用していない理由はありますpreviousSiblingnextSibling?コードは理論的には機能するはずですが、明らかに機能しないため(エラーコンソールを確認しましたか?)、配列ループではなく、一種のイテレータのアイデアを使用して機能する次のコードを試してください。

// hide the others divs under the same parent
var child = e.parentnode.firstChild;

do
  {
    if (child != e)
      {
        child.style.display = 'none';
      }
    child = child.nextSibling;
  }
while (child.nextSibling != null);

ちなみに、jQueryのようなものを使用するための2番目の推奨事項です。それは物事を簡単にします。

于 2009-12-24T23:54:21.480 に答える