在多个html页面中选择ID

时间:2017-04-20 22:32:32

标签: javascript jquery html ajax dom

您好我真的想找个人帮我找到解决这个问题的方法。

我有两个html页面和一个带jquery的js页面

page1.html

<a id="test1"></a>

page2.html

<div class="navdown">
        <ul id="top-menu"> 

            <li id="one" class="active1"> 
                <a id="t1">
                </a> 
            </li>

            <li id="two">
                <a id="t2">
                </a>
            </li> 




                <li id="three">  
                <a id="t3">
                </a> 
            </li>





        </ul>
    </div>

test.js

$('#test1').on('click', function(){


$('#one').removeClass('active1');


$('#three').addClass('active1');


});

我正在尝试这样,当在page1(#test1)上点击第2页(#one)时,类active1被删除,然后被添加到(#three)。

我理解,因为这些是不同的html页面/ dom,js无法按预期运行,但我一直在寻找这个问题的不同解决方案。但是没能找到一个很简单。有没有办法在多个dom中选择一个id并在同一个jquery函数中使用它们?

2 个答案:

答案 0 :(得分:0)

唯一正确的答案是否定的,你不能将JS用于不同页面的持久DOM更改,而不需要任何后端。

答案 1 :(得分:0)

我同意这个问题的字面答案是否定的,你不能这样做。

我建议重新考虑你想要做的事情的结构。它真的需要两个单独的页面吗?

如果它确实存在,无论出于何种原因,你可以使用一些黑客来完成你的目标。

与建议的Felix Haberle一样,当点击按钮时,您可以在第1页上set a cookie,然后在第2页上读取该Cookie。或者您可以在local storage中设置变量。本地存储可能是更好的选择。这是good summary个Cookie与本地存储的对比。

或者,另一个黑客是利用网址中的哈希值。如果在第1页上单击该按钮,则可以导航到page2.html#buttonClicked而不是page2.html。然后在第2页上,检查是否存在哈希值 - window.location.hash

请注意,这些只是黑客攻击。您要做的是在浏览器中管理状态。在多个页面加载中无法可靠地维护客户端状态。我真的建议你重新思考你是如何构建事物的。但并非这个世界上的一切都是美丽的,如果你对怪异的黑客完全没问题,那么这些就可以了! ;)