Javascript 从同一类的所有选择框中删除选项,单击的选项除外
我有一张酒店预订表,顾客可以在那里选择和谁合住一个房间。 每一行代表一个客人的名字,并且有一个下拉菜单(),其中包含所有其他客人的id号作为选项 当第一排的客人决定共享一个客人id=3的房间时,我希望第一排下拉框显示3,第三排显示1,所有其他行的选择框中删除1和3选项 我已经得到了下面的代码,但是.not(this)不起作用,任何关于为什么的提示都将受到热烈的欢迎 这是表格Javascript 从同一类的所有选择框中删除选项,单击的选项除外,javascript,jquery,Javascript,Jquery,我有一张酒店预订表,顾客可以在那里选择和谁合住一个房间。 每一行代表一个客人的名字,并且有一个下拉菜单(),其中包含所有其他客人的id号作为选项 当第一排的客人决定共享一个客人id=3的房间时,我希望第一排下拉框显示3,第三排显示1,所有其他行的选择框中删除1和3选项 我已经得到了下面的代码,但是.not(this)不起作用,任何关于为什么的提示都将受到热烈的欢迎 这是表格 <?php for($a=0;$a<15;$a++) { echo " <
<?php
for($a=0;$a<15;$a++)
{
echo "
<tr id=".($a+1)."><td>".($a+1)."</td>
<td><select name='title[]'>
<option value='Ms'>Ms</option>
<option value='Mrs'>Mrs</option>
<option value='Mr'>Mr</option>
<option value='Dr'>Dr</option>
</select></td>
<td><input type='text' name='firstname[]' size='10'></td>
<td><input type='text' name='lastname[]' size='10' ></td>
<td><input type='text' name='email[]'></td>
<td><input type='text' name='passport_no[]'></td>
<td><input type='date' name='dob[]' size='10'></td>
<td><select name='room_pref[]' class='room_pref'>
<option value='TWIN'>twin</option>
<option value='DOUBLE'>double</option>
<option value='SINGLE'>single</option>
</select></td>
<td><select name='share_w[]' class='share'>";
for($b=1;$b<16;$b++)
{
echo "<option value=".$b.">".$b."</option>";
}
echo "<option value ='ALONE'>Alone</option>
</select></td>
<td><input type='text' name='diet[]'></td>
<td><input type='text' name='allergies[]'></td>
</tr>";
此
此处的意思是选择
非选项
,您需要不在上应用。共享
集合和不在选项
上应用
试一试
您还可以避免在单击处理程序中反复创建.share
集合
var $share = $('.share');
$share.change(function(){
$share.not(this).children("option[value="+ this.value +"]").remove();
});
你的实际代表(最小/)是什么?您的PHP执行服务器端,它会发送什么到浏览器以供JavaScript使用?感谢您不仅给出了答案,而且纠正了我的错误understanding@MarkGilchrist只是您不想反复创建对象
$('.share')
集合。如果您没有动态添加任何其他.share
,则这将保留集合。
$(".share").not(this).children("option[value="+ this.value +"]").remove();
var $share = $('.share');
$share.change(function(){
$share.not(this).children("option[value="+ this.value +"]").remove();
});