选择此+选项不起作用

时间:2018-02-23 22:26:02

标签: javascript jquery html

我正在尝试在与其他人具有相同类别的select中启动Change事件时,将检索该值,如果它等于一个数据,则选择另一个相同的select。我的问题在于,我不知道如何创建选择器。我尝试过这样,但它不起作用。欢迎所有答案



$(function(){

  $(document).on('change','.sel',function(){
    var val = parseInt( $(this).val() );
    if( val === 2 ){
      $(this + 'option[value="3"]').prop('selected',true);
    }
  });

});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<select class="sel">
  <option value="1">Val 1</option>
  <option value="2">Val 2</option>
  <option value="3">Val 3</option>
</select>

<select class="sel">
  <option value="1">Val 1</option>
  <option value="2">Val 2</option>
  <option value="3">Val 3</option>
</select>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:3)

您可以使用this关键字获取select元素,然后使用find方法获取所需选项。你不能像在你的例子中那样使用它。尝试在控制台中运行this + 'option[value="3"]' - 它会输出"[object Window]option[value=\"3\"]",这不是您想要的选择器。

$(function(){

  $(document).on('change','.sel',function(){
    var val = parseInt( $(this).val() );
    if( val === 2 ){
      $(this).find("option[value='3']").prop('selected',true);
    }
  });

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<select class="sel">
  <option value="1">Val 1</option>
  <option value="2">Val 2</option>
  <option value="3">Val 3</option>
</select>

<select class="sel">
  <option value="1">Val 1</option>
  <option value="2">Val 2</option>
  <option value="3">Val 3</option>
</select>

答案 1 :(得分:0)

&#13;
&#13;
$('.sel > option').click(function(e){
    var = trueVal = "";
    var selectedVal = $(e.target).attr('value');
    if(selectedVal == '1'){
        trueVal = '2';
    } else if(selectedVal == '2'){
        trueVal = '3';
    }
    return trueVal;
    console.log(trueVal);
	  // Do whatever you want with trueValue
});
&#13;
&#13;
&#13;

相关问题