【发布时间】:2017-01-12 15:05:57
【问题描述】:
我使用 jQuery 已经有 2 年了,我知道这很简单,我以前做过很多次,但由于某种原因,我今天似乎无法让它工作,所以我在这里发帖。这是我剪掉的 Javascript 代码:
(function () {
// checking for query strings
var vars = [], hash;
var q = document.URL.split('?')[1];
if (q != undefined) {
q = q.split('&');
for (var i = 0; i < q.length; i++) {
hash = q[i].split('=');
vars.push(hash[1]);
vars[hash[0]] = hash[1];
}
}
// end query string check
// using query strings above to perform operations
if (typeof (vars['grade']) != "undefined") {
alert(vars['grade']);
$('#divGrade').html(vars['grade']);
}
alert($('#divGrade').html());
})();
我在页面上有一个 div 标签:
<div id="divGrade" ></div>
查询字符串为:default.html?grade=0
javascript 读取等级,即 0,然后使用“警报”将其显示给用户,然后将其分配给 div 标签。当试图提醒用户 div 标签的 html 时,它是“未定义的”。
我一直盯着这个,我知道我在做的事情很愚蠢。关于它可能是什么的任何想法?
【问题讨论】:
-
我怀疑这部分 vars.push(hash[1]);变量[哈希[0]] =哈希[1];您正在将 [1] => 值添加到数组,然后尝试按键设置
-
您使用
(function() { ... })();是不是要使用$(function() { ... });?alert($('#divGrade').length)有什么用(即它是否在页面上当您运行代码时?) -
你的代码没问题,问题是
Document.URL不包含搜索参数。做一个console.log(document.URL);他们可以在window.location.search中找到,在上面做一个console.log(window.location.search)看看你会得到什么。 -
@Fran 它们被包括在内(至少在 Chrome 中)。
((location.href == document.URL) == true) -
@Fran 好的,如果您的 location.href 也不包含搜索,我的示例不是很有帮助 - 但是它应该。如果 plunkr 像 jsfiddle 一样工作,那么它无论如何都不会进行任何搜索(猜测) - 在真实网站的控制台中尝试它(具有
?ofc)。 OP 确实提到用户的搜索值为alertd,所以那时可能还可以。
标签: javascript jquery html query-string