在查询字符串中存储值但仍显示div

时间:2014-04-01 06:25:37

标签: javascript jquery html css

我的HTML:

<a href="?id=2" id="showdiv">Open div and store values</a>
<div id="divtoshow" style="display:none;">Hello</div>

我的jQuery:

$("a#showdiv").click(function(){
    $("#divtoshow").show();
}

我的问题:

当我点击链接时,它必须显示div并添加查询字符串但它不起作用,因为如果我单击链接它会重新启动页面以添加查询字符串,然后div将不会显示。但是我仍然需要它来添加查询字符串。

6 个答案:

答案 0 :(得分:1)

只需将锚点更改为

即可
<a href="#showDiv?id=2" id="showdiv">Open div and store values</a>

简单来说,它不会刷新页面,而是带来ID showdiv的元素来查看。当然,如果它存在..

答案 1 :(得分:0)

1)由于ID是唯一的,因此您可以使用#showdiv代替a#showdiv

2)使用e.preventDefault()来阻止点击的默认行为

3)您遗失#来定位ID为divtoshow

的div
$("#showdiv").click(function(e){
    e.preventDefault();
    $("#divtoshow").show();
});

答案 2 :(得分:0)

使用preventDefault来阻止默认操作:

 $("#showdiv").click(function(e){
   e.preventDefault();
   $("#divtoshow").show();
  }

答案 3 :(得分:0)

你可以:

$("a#showdiv").click(function(e){
    e.preventDefault();
    e.stopPropagation();// not sure if needed.
    $("#divtoshow").show();
}

它应该停止链接正常行为。

修改 用于添加div的文本点击:

$("a#showdiv").click(function(e){
    e.preventDefault();
    e.stopPropagation();// not sure if needed.
    var id = $('#showdiv').attr('id').split('=')[1];// if only one parameter posible
    $("#divtoshow").show();
}

答案 4 :(得分:0)

使用以下JQuery代码。

$("#showdiv").click(function(e){
    e.preventDefault();
    $("#divtoshow").show();
});

Demo

答案 5 :(得分:0)

试试这个

function getParameterByName(name) {
            name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
            var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
                results = regex.exec(location.search);
            return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
        }

并在document.ready()

if(getParameterByName("id") == 2)
{
    $("#divtoshow").show();
}