Jquery 更改时,从数组中导航到url值

Jquery 更改时,从数组中导航到url值,jquery,Jquery,我有一个选择菜单,它从一系列对象中提取所有选项。见下文。我想让菜单在更改时导航到每个州的url值,并在新选项卡中打开,但我没有正确启动。我有一个if/else语句,它不断地回击'false',因为它无法识别url值 let states = [ {id: 1, state: "Alabama", district: "1st District", url:"www.google.com"}, {id: 2, state: "Alabama", district: "2nd

我有一个选择菜单,它从一系列对象中提取所有选项。见下文。我想让菜单在更改时导航到每个州的url值,并在新选项卡中打开,但我没有正确启动。我有一个if/else语句,它不断地回击'false',因为它无法识别url值

let states = [
      {id: 1, state: "Alabama", district: "1st District", url:"www.google.com"},
      {id: 2, state: "Alabama", district: "2nd District", url:"www.google.com"},
      {id: 3, state: "Alabama", district: "3rd District", url:"www.google.com"},
      {id: 4, state: "Alabama", district: "4th District", url:"www.google.com"},
      {id: 5, state: "Alabama", district: "5th District", url:"www.google.com"},
      {id: 6, state: "Alabama", district: "6th District", url:"www.google.com"},
      {id: 7, state: "Alabama", district: "7th District", url:"www.google.com"},
      {id: 9, state: "Alaska", district: "Statewide District", url:"www.google.com"},
      {id: 10, state: "Arizona", district: "1st District", url:"www.google.com"},
      {id: 11, state: "Arizona", district: "2nd District", url:"www.google.com"},
      {id: 12, state: "Arizona", district: "3rd District", url:"www.google.com"},  
有更多的状态,但以上只是一个片段

<body>
    <div class="container55">
      <h2>Find Out How Tax Reform Will Impact Your District</h2>
        <select id="listed_states">
          <option>Find Your District Here</option>
        </select>
    </div>
  </body>


   <script>
    $(document).ready(function() {
  //Code block generating dropdown list from states object
      for (let i = 0; i < states.length; i++) {
       if (states[i].id > 0) {
        var option = $("<option>", {
         text: states[i].state + " " + states[i].district,
         value: states[i].id
       });
      $('#listed_states').append($(option));
    }
  }



  $('#listed_states').on('change', function(){
   if ($(this).url){
    window.open($(this).url, '_blank');
   } else {
    console.log('false');
   }
  })
 });
 </script>

选项缺少url,您将$this.url更改为$this.find'option:selected'.attr'url'

//Code block generating dropdown list from states object
          for (let i = 0; i < states.length; i++) {
           if (states[i].id > 0) {
            var option = $("<option>", {
             text: states[i].state + " " + states[i].district,
             value: states[i].id,
             url : states[i].url
           });
          $('#listed_states').append($(option));
        }
      }



      $('#listed_states').on('change', function(){
       if ($(this).find('option:selected').attr('url')){
        window.open($(this).find('option:selected').attr('url'), '_blank');
       } else {
        console.log('false');
       }
      })
     });

您没有将状态数组中的url与元素关联。这些信息只是在阵列中未被使用。您可以将其作为数据属性转发,也可以在更改事件触发后返回数组读取URL。这很接近,但URL路径位于您从plus www.google.com工作的任何位置。你的代码笔是:。有没有什么办法可以改变这一点,这样你就可以像在对象中一样打开url?@OsuDani url必须是http://not www.google.com,我刚才在玩它的时候就知道了。再次感谢!: