如何使用jquery访问具有值= xx的所选项目名称的值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用jquery访问具有值= xx的所选项目名称的值相关的知识,希望对你有一定的参考价值。

我有像下面这样的选择框列表。我想要访问名称为向下的第一个选择框,其中一个选择了值“a”。

当sb3选择了值= b然后如果sb2选择值= a我想要得到这个,如果sb1选择值= a我想要得到这个

当sb2选择了值= b然后,如果sb1选择值= a我想要得到这个并且像这样

我试过了

console.log( $("[name^='sb'] option[value='a']:selected").closest('select').attr("name")  );

要么

console.log( $(this).parent().closest( "[name^='sb'] option[value='ana']" ).attr("name") ); 

样本选择列表;

<select name="sb1" >
<option value="a"></option>
<option value="b"></option>
</select>

<select name="sb2" >
<option value="a"></option>
<option value="b"></option>
</select>

<select name="sb3" >
<option value="a"></option>
<option value="b"></option>
</select>

编辑另一个例子;

i want to get closest item prior to selested item.

sb45=a
sb46=a
sb47=b --> this give me sb46
sb48=b --> this give me sb46
sb49=a
sb50=b --> this give me sb49

thanks for help.
答案

你必须做一个递归函数,迭代抛出prev元素并用qazxsw poi搜索select,否则没有人选择。

value == a

附加更改处理程序将显示选择了sb *(优先级从上到下)

见下面的片段:

function getRecursivePrevName($node) {
  $sb = $($node).prev("[name^='sb']");
  if($sb.length) {
    if($sb.val()=="a") return $sb.attr("name")
    else return getRecursivePrevName($sb);
  }
  else return null; 
}
$("[name^='sb']").on("change", function() {
  
  if($(this).val() !== 'a') {
     var value =  getRecursivePrevName($(this));
     console.log(value);
     if(value != null )
        $("#selected").html("select sb is <span style='color:red'>" + value + "</span>");
     else $("#selected").html("no select has value a");
  }else {
     console.log($(this).attr("name"));
     $("#selected").html("select sb is <span style='color:red'>" + $(this).attr("name") + "</span>");
  }
  
});

function getRecursivePrevName($node) {
  $sb = $($node).prev("[name^='sb']");
  if($sb.length) {
    if($sb.val()=="a") return $sb.attr("name")
    else return getRecursivePrevName($sb);
  }
  else return null; 
}

以上是关于如何使用jquery访问具有值= xx的所选项目名称的值的主要内容,如果未能解决你的问题,请参考以下文章

python 删除ListWidget中的所选项目

如何在jQuery中更改所选项目[重复]

select2 jQuery插件:获取所选选项的文本值? [复制]

如何解决 Eclipse中出现-访问限制由于对必需的库XX具有一定限制,因此无法访问类型

如何从引导下拉菜单中获取值(jQuery)

使用 jQuery 获取所选选项的文本 [重复]