Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.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 更改同级时如何替换select标记_Javascript_Jquery - Fatal编程技术网

Javascript 更改同级时如何替换select标记

Javascript 更改同级时如何替换select标记,javascript,jquery,Javascript,Jquery,我有三个(级联)select标记,它们在一个div中一个接一个地出现。它们的html仅在选项上有所不同。select的名称和ID相同 <div class="dad"> <select id="foo" name="foo[bar]" value="myVal"> ... <option value="343">boom</option> ... </select> <select id="fo

我有三个(级联)select标记,它们在一个div中一个接一个地出现。它们的html仅在选项上有所不同。select的名称和ID相同

<div class="dad">
  <select id="foo" name="foo[bar]" value="myVal">
    ...
    <option value="343">boom</option>
    ...
  </select>
  <select id="foo" name="foo[bar]" value="myVal">...</select>
  <select id="foo" name="foo[bar]" value="myVal">...</select>
</div>

通常我会有我需要替换的select的id或类,这很容易。这里的问题是,由于所有三个select都具有相同的id和名称,如何在所选的select之后识别select?谢谢。

你可以这样做

$('select#foo').live("change", function() {

    var optionSelected = $('option:selected', this);
    var selID = optionSelected.val();
    var nextSelect = $(this).next();

    $.post('/postUrl?data=selID', function(data) {
      // do action with nextSelect
      nextSelect.doSomething;
    });

id
对于每个元素都应该是唯一的。@absolutskyy-我很好奇..为什么所有select标记都有相同的名称/id?这是你能控制的吗?如果是的话,你应该尽快让它们变得独一无二。否则,随着项目的发展,你会继续遇到这样的问题。你说得很对。选择是元编程的,这不是它应该工作的方式,但我现在改变了选择有不同的ID,所以这使它非常容易。谢谢@dipen感谢帮助。请看我上面的评论。
$('select#foo').live("change", function() {

    var optionSelected = $('option:selected', this);
    var selID = optionSelected.val();
    var nextSelect = $(this).next();

    $.post('/postUrl?data=selID', function(data) {
      // do action with nextSelect
      nextSelect.doSomething;
    });