Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从同一类的所有选择框中删除选项,单击的选项除外_Javascript_Jquery - Fatal编程技术网

Javascript 从同一类的所有选择框中删除选项,单击的选项除外

Javascript 从同一类的所有选择框中删除选项,单击的选项除外,javascript,jquery,Javascript,Jquery,我有一张酒店预订表,顾客可以在那里选择和谁合住一个房间。 每一行代表一个客人的名字,并且有一个下拉菜单(),其中包含所有其他客人的id号作为选项 当第一排的客人决定共享一个客人id=3的房间时,我希望第一排下拉框显示3,第三排显示1,所有其他行的选择框中删除1和3选项 我已经得到了下面的代码,但是.not(this)不起作用,任何关于为什么的提示都将受到热烈的欢迎 这是表格 <?php for($a=0;$a<15;$a++) { echo " <

我有一张酒店预订表,顾客可以在那里选择和谁合住一个房间。 每一行代表一个客人的名字,并且有一个下拉菜单(),其中包含所有其他客人的id号作为选项

当第一排的客人决定共享一个客人id=3的房间时,我希望第一排下拉框显示3,第三排显示1,所有其他行的选择框中删除1和3选项

我已经得到了下面的代码,但是.not(this)不起作用,任何关于为什么的提示都将受到热烈的欢迎

这是表格

<?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();
});