Jquery 更改时,从数组中导航到url值
我有一个选择菜单,它从一系列对象中提取所有选项。见下文。我想让菜单在更改时导航到每个州的url值,并在新选项卡中打开,但我没有正确启动。我有一个if/else语句,它不断地回击'false',因为它无法识别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
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,我刚才在玩它的时候就知道了。再次感谢!: