您好我真的想找个人帮我找到解决这个问题的方法。
我有两个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函数中使用它们?
答案 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
。
请注意,这些只是黑客攻击。您要做的是在浏览器中管理状态。在多个页面加载中无法可靠地维护客户端状态。我真的建议你重新思考你是如何构建事物的。但并非这个世界上的一切都是美丽的,如果你对怪异的黑客完全没问题,那么这些就可以了! ;)