1

あなたの助けが必要です

「ファイルdocument.getElementById("file").children[1].style.display = "none";」メニューの「保存」項目をdocument.getElementById("edit").children[1].style.display = "none";非表示にすると、正常に動作せず、「編集」メニュー項目の「新規追加」項目が非表示になりません。

<div id="menuwrapper">
    <div id="menu" style="width: 1001px; height: 20px">
        <ul>
            <li>
                <a href="#nogo"><div id="div_rssims_file">File</div></a>

                <ul id="file">
                    <li><a onclick="window.print()"><div id="div_rssims_file_print">Print</div></a></li>
                    <li id="li_rssims_file_save"><a onclick="rssims_save()"><div id="div_rssims_file_save">Save</div></a></li>
                    <li><a onclick="rssims_save();window.close()"><div id="div_rssims_file_save_exit">Save & Exit</div></a></li>
                    <li><a onclick="window.close()"><div id="div_rssims_file_exit">Exit</div></a></li>
                </ul>
            </li>

            <li>
                <a href="#nogo"><div id="div_rssims_edit">Edit</div></a>

                <ul id="edit">
                    <li><a href="#nogo" onclick="rssims_addnew()"><div id="div_rssims_edit_addnew">Add new</div></a></li>
                    <li><a href="#nogo" onclick="sims_delete()"><div id="delete">Delete</div></a></li>
                    <li><a href="#nogo" onclick="sims_reset()"><div id="clear">Clear Form</div></a></li>
                </ul>
            </li>

            <li>
                <a href="#nogo"><div id="div_rssims_view">View</div></a>

                <ul>
                    <li><a href="#nogo"><div id="goto_first">&gt;&gt; Go to First</div></a></li>
                    <li><a href="#nogo"><div id="goto_next">&gt;Go to Next</div></a></li>
                    <li><a href="#nogo"><div id="goto_prev">Go to Previous&gt;</div></a></li>
                    <li><a href="#nogo"><div id="goto_last">Go to Last&gt;&gt;</div></a></li>
                </ul>
            </li>

            <li>
                <a href="#nogo"><div id="div_rssims_reports">Reports</div></a>

                <ul>
                    <li><a href="#nogo"><div id="export_excel">Export to Excel Table</div></a></li>
                    <li><a href="#nogo" onclick="sims_compile_htmltable()"><div id="export_html">Export to HTML Table</div></a></li>
                    <li><a href="#nogo" onclick="sims_compile_htmllist()"><div id="export_list">Export to HTML List</div></a></li>
                    <li><a href="#nogo" onclick="sims_compile_contactcard()"><div id="export_contact">Export as Contact Card</div></a></li>
                </ul>
            </li>

            <li>
                <a style="cursor: pointer;" onclick="sims_logoff()"><div id="div_rssims_logoff">Logoff</div></a>
            </li>
        </ul>
    </div>
</div>
4

3 に答える 3

11

これを試して

document.getElementById("edit").children[0].style.display = "none"

Add New は #edit の最初の位置です

于 2013-09-27T19:43:49.557 に答える
1

2番目の子[1]が選択されるため、正しいアイテムを削除していません。最初のものを取得するには、代わりに次を使用します。[0]

document.getElementById("edit").children[1].style.display = "none"

これが最初の例で機能するのは、おそらくそれ2 番目の要素だからです。

于 2013-09-27T19:44:08.380 に答える
1
document.getElementById("file").children[1].style.display = "none";

「保存」メニュー項目 ( の 2 番目の子<ul id="file">) を隠しています。

document.getElementById("edit").children[1].style.display = "none";

「削除」メニュー項目 ( の 2 番目の子<ul id="edit">) を隠しています。

「新規追加」サブメニュー項目を非表示にする場合は、次の<ul id="edit">ように最初の子をターゲットにする必要があります。

document.getElementById("edit").children[0].style.display = "none";

すべてのアイテムを含む「編集」サブメニュー全体を非表示にする場合は、次の<ul id="edit">ようにターゲットを設定する必要があります。

document.getElementById("edit").style.display = "none";

childrenこれは、メニュー項目を選択する手段としてを使用することの重大な欠点を指摘しています。項目の順序が変わると、Javascript も変わります。

class名前またはでアイテムをターゲットにする方がはるかに優れていますiddiv各項目のリンクから内部を削除し(これは不要です) 、要素aの を置き換えると、必要なメニュー項目だけをターゲットにすることができます。idli

            <ul id="edit">
                <li id="div_rssims_edit_addnew"><a href="#nogo" onclick="rssims_addnew()">Add new</a></li>
                <li id="delete"><a href="#nogo" onclick="sims_delete()">Delete</a></li>
                <li id="clear"><a href="#nogo" onclick="sims_reset()">Clear Form</a></li>
            </ul>

document.getElementById("div_rssims_edit_addnew").style.display = "none";

これは、アイテムの順序に関係なく常に機能します。要素がページに存在しない場合でも、エラーで爆発します。これを防ぐには、jQuery などの JavaScript ライブラリを使用してこれを行うのが最善です: http://api.jquery.com/hide/

于 2013-09-27T19:48:49.010 に答える