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 的选项卡,因此其中一个是隐藏的,但始终存在于 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

我不能有唯一的 ID,因为我.load用于加载 page2.html 作为 page1.html 的隐藏部分,因此我将有重复的元素。

更新 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 回答