我在该页面上有几个包含表单的div。当用户单击div并提交表单时,页面将重新加载。重新加载之后,我想在页面重新加载之前为用户选择的特定div添加一个类,以便在页面重新加载后识别它。
我的问题是,如何在页面重新加载后保留该特定div的ID?
<div id="1"></div>
<div id="2"></div>
<div id="3"></div>
<script>
$(document).ready(function() {
// What needs to go here...?
});
</script>
谢谢!
答案 0 :(得分:0)
您可以在网址中使用参数。
<script>
$(document).ready(function(){
function getUrlVars() {
var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++)
{
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}
var myParam = = getUrlVars()['myparam'];
if (myParam == 'first') {
// do here whatever you want, you kwow the first div was clicked
}
$('#1').click(function(){
window.location = 'index?myparam=first';
})
})
</script>
答案 1 :(得分:0)
您可以使用localStorage或sessionStorage。我个人会使用localStorage。
//inside document ready
$('#1').click(function() {
localStorage.setItem("One", "clicked")
}
$('#2').click(function() {
localStorage.setItem("Two", "clicked")
}
$('#3').click(function() {
localStorage.setItem("Three", "clicked")
}
window.onload = get ()
function get () {
var One = localStorage.getItem("One")
var Two = localStorage.getItem("Two")
var Three = localStorage.getItem("Three")
//then if the var is equal to click, do what you want to it.
}
答案 2 :(得分:0)
我想到有两种方法可以做到这一点。第一个(如果你必须重新加载整个页面):将GET参数添加到表单提交,然后在你的javascript中检查它们。
http://example.com/submit.php?selected_div=div_id&other_selected_div=div_id
This post explains how to retrieve GET parameters in Javascript
但是使用AJAX调用提交表单然后在成功调用(或显示错误消息)后修改DOM会容易得多。这样,您不必在页面重新加载时保留任何内容。
你可以使用jQuery做到这一点。它描述为here in the official docs和this tutorial.
答案 3 :(得分:-1)
你需要在任何地方保存最后选择的div。 您可以使用本地存储,cookie或类似服务。此外,当您刷新网站以了解选择了哪个div时,您可以在网址中发送其他参数,否则您无法知道具体的div。
问候!