0

私は同じ要素を持っています:

<div id="demo_div" style="display:none;"></div>

page1.htmlpage2.htmlの両方で。

JavaScript は、page1.html と page2.html の両方にアクセスできます。で要素にアクセスすると

$("#demo_div")

DOM の最初の要素を取得します (page1.html と page2.html は index.html のタブなので、そのうちの 1 つが非表示になりますが、常に DOM に存在します)。

特定のページから要素を取得することは可能ですか?

更新 1 :

HTML 全体:

<html>
<html lang="us">
<head>
    <meta charset="utf-8">
    <title>Test Index Page</title>

    <META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
    <META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
    <META HTTP-EQUIV="Expires" CONTENT="-1">

    <link href="css/styles.css" rel="stylesheet">
    <script src="js/jquery-1.8.2.js"></script>
    <script src="js/jquery-ui-1.9.0.min.js"></script>

    <script src="modules/page1.js?version=5"></script>
    <script src="modules/page2.js?version=5"></script>
</head>
<body>
<div id="wrap">
    <div id="content" style="display:none;">
    <div id="main_tabs">
        <ul id="tabs_header">
            <li><a href="#Home">Home</a></li>
            <li><a href="modules/page1.html?version=3">Page1</a></li>
            <li><a href="modules/page2.html?version=14">Page2</a></li>
        </ul>
    </div>
    </div>
</div>
</body>
</html>

更新 2 :

.loadpage2.html を page1.html の非表示部分としてロードするために使用するため、一意の ID を持つことはできません。したがって、要素が重複します。

更新 3 :

index.html にリンクされているファイル内から JavaScript を実行して、.jsその兄弟 (page1.html と page2.html) にアクセスできるようにします。

4

2 に答える 2

1

誰かがそれを逃した場合に備えて。どのページがロードされているかがわかっている場合は、動的に追加されたクラスを使用して問題を解決できます。divにクラスを追加するだけです:

$('myDiv').addClass('page' + thePageNr);

それにもかかわらず:重複したIDを削除すると、予期しない動作が発生します:)

于 2012-11-19T10:20:30.760 に答える
0

Dom 要素 ID は一意である必要があります。しかし、あなたの場合はそうではありません。

それでも同じIDを使用したい場合は、属性セレクターで以下を使用してみてください。ただし、通常、同じIDを使用することを推奨する人は誰もいません

 $("div[id='demo_div']")
于 2012-11-19T10:03:55.243 に答える