预选状态下拉框时出现JS错误

时间:2018-12-03 18:18:44

标签: javascript jquery

我正在尝试使用网址中的变量自动选择状态下拉框的选项。

仅出于某些原因,我收到此消息(未定义不是对象(评估为'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
    }
});

});

1 个答案:

答案 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 变量

中拥有所有查询字符串键/值参数