我在一个html页面的查询字符串中传递div名称,并在另一个html页面上检索该div名称。现在我想在页面上显示特定的div。我的代码是
function onLoad()
{
var divname=window.location.search.substring(1);
document.getElementById(divname).style.display="block"; //error is in this line
}
但我收到的错误是“预期的对象”。请帮帮我
答案 0 :(得分:3)
window.location.search
属性返回?
符号后面的网址部分,包括?
符号。
例如,它可能会返回?paramname=paramvalue
。当你在它上面调用substring(1)
时,你会得到paramname=paramvalue
,这是传递给document.getElementById
函数的,这显然是错误的,因为你的DOM上不存在这样的元素。
您可以使用following javascript function
来读取查询字符串参数值:
function onLoad() {
var divname = getParameterByName('divname');
document.getElementById(divname).style.display = 'block';
}
这假设您有一个名为divname
的查询字符串参数名称:
?divname=some_div_name
如果以不同方式调用查询字符串参数,请调整传递给getParameterByName
函数的参数。
您可能还希望在代码中引入错误检查,以使其更加健壮:
function onLoad() {
var divname = getParameterByName('divname');
var divElement = document.getElementById(divname);
if (divElement != null) {
divElement.style.display = 'block';
} else {
alert('Unable to find an element with name = ' + divname);
}
}
答案 1 :(得分:0)
我的建议是将js
放在html
代码的末尾(</body>
代码之前)。不要使用功能。
<html>
...
...
...
<body>
...
...
...
<script>
var divname=window.location.search.substring(1);
document.getElementById(divname).style.display="block";
</script>
</body>
</html>
答案 2 :(得分:0)
我重写了我的功能,它正在运行,代码就像这样
function load()
{
var divname = window.location.search.substring(1);
var params=divname.split('=');
var i=1;
alert(params[i].substring(0));
document.getElementById(params[i].substring(0)).style.display='block';
}