具有动态选项的多个 Select 标签
Multiple Select tags with dynamic options
我的网站有多个成对出现的 select 标签。
因此,当我在 select 标签 1 中选择一支球队时,我希望该球队的所有球员都出现在最近的 select 标签 (2) 球员中。我已经完成了所有玩家的获取,并且我已经准备好了结果。但是当我使用 javascript 更新 select 标签时,我遇到了一个问题,要么所有玩家标签更新为相同的值,要么 none 更新。
所以!我的问题是我只想更新下一个 (.player) select 标签而不是每个 .player 标签?
这是一个
DEMO
<div>
<i>1</i>
<select class="country">
<option selected="selected">Team</option>
<option value="England">England</option>
<option value="Italy">Italy</option>
</select>
</div>
<div>
<i>2</i>
<select class="player">
<option selected="selected">Player</option>
</select>
</div>
<div>
<i>1</i>
<select class="country">
<option selected="selected">Team</option>
<option value="England">England</option>
<option value="Italy">Italy</option>
</select>
</div>
<div>
<i>2</i>
<select class="player">
<option selected="selected">Player</option>
</select>
</div>
$(document).ready(function() {
$(".country").change(function() {
$(this).next(".player").html("<option value='test'>test</option>");
});
});
问题是因为 .player
不是 .country
的兄弟姐妹。您需要找到最近的父 div
,然后转到下一个 div 并在其中找到 .player
。试试这个:
$(".country").change(function() {
$(this).closest('div').next('div').find('.player').html("<option value='test'>test</option>");
});
我的网站有多个成对出现的 select 标签。
因此,当我在 select 标签 1 中选择一支球队时,我希望该球队的所有球员都出现在最近的 select 标签 (2) 球员中。我已经完成了所有玩家的获取,并且我已经准备好了结果。但是当我使用 javascript 更新 select 标签时,我遇到了一个问题,要么所有玩家标签更新为相同的值,要么 none 更新。 所以!我的问题是我只想更新下一个 (.player) select 标签而不是每个 .player 标签?
这是一个 DEMO
<div>
<i>1</i>
<select class="country">
<option selected="selected">Team</option>
<option value="England">England</option>
<option value="Italy">Italy</option>
</select>
</div>
<div>
<i>2</i>
<select class="player">
<option selected="selected">Player</option>
</select>
</div>
<div>
<i>1</i>
<select class="country">
<option selected="selected">Team</option>
<option value="England">England</option>
<option value="Italy">Italy</option>
</select>
</div>
<div>
<i>2</i>
<select class="player">
<option selected="selected">Player</option>
</select>
</div>
$(document).ready(function() {
$(".country").change(function() {
$(this).next(".player").html("<option value='test'>test</option>");
});
});
问题是因为 .player
不是 .country
的兄弟姐妹。您需要找到最近的父 div
,然后转到下一个 div 并在其中找到 .player
。试试这个:
$(".country").change(function() {
$(this).closest('div').next('div').find('.player').html("<option value='test'>test</option>");
});