我正在尝试使用网址中的变量自动选择状态下拉框的选项。
仅出于某些原因,我收到此消息(未定义不是对象(评估为'params.get'))-不知道为什么,它仅在Safari中发生。它在FF和Chrome中完美运行。有什么想法吗?有什么方法可以更改代码以使其在所有浏览器上都能正常工作?
jQuery(document).ready(function( $ ) {
// Construct URL object using current browser URL
var url = new URL(document.location);
// Get query parameters object
var params = url.searchParams;
// Get value of state
var state = params.get("state");
state = state.toUpperCase();
//alert(state);
$('#state option').each(function(){
var $this = $(this); // cache this jQuery object to avoid overhead
if ($this.val().toUpperCase() == state) { // if this option's value is equal to our value
$this.prop('selected', true); // select this option
return false; // break the loop, no need to look further
}
});
});
答案 0 :(得分:1)
如果您要获取查询字符串参数,我只能推荐您,您可以使用我一直使用的此代码片段,并且它非常棘手
var queryStrings = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
var pageParams = [];
for (var i = 0; i < queryStrings.length; i++) {
var hash = queryStrings[i].split('=');
var qKey = hash[0];
var qVal = hash[1];
pageParams.push({Key: qKey, Value: qVal});
}
然后您在 pageParams 变量
中拥有所有查询字符串键/值参数