首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检查select选项中的所有值是否与javascript相同?

如何检查select选项中的所有值是否与javascript相同?
EN

Stack Overflow用户
提问于 2017-07-03 09:54:16
回答 4查看 1.5K关注 0票数 1

如果我有这样的html。

代码语言:javascript
复制
<select multiple="" class="form-control" id="catalogsearch_specification2">

<option value="B-3-7">aaa</option>
<option value="B-3-7">bbb</option>
<option value="B-3-7">ccc</option>
<option value="B-3-7">ddd</option>

</select>

如何检查select选项中的所有值是否与javascript相同?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-07-03 10:02:05

你可以:

代码语言:javascript
复制
var isSame = true,
    prev = '';

$('#catalogsearch_specification2 > option').each(function() {
  if (prev && prev !== this.value) {
    isSame = false;
    return;
  }
  
  prev = this.value;
});

console.log(isSame);
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select multiple="" class="form-control" id="catalogsearch_specification2">
  <option value="B-3-7">aaa</option>
  <option value="B-3-7">bbb</option>
  <option value="B-3-7">ccc</option>
  <option value="B-3-7">ddd</option>
</select>

票数 1
EN

Stack Overflow用户

发布于 2017-07-03 09:59:31

使用Set对象检查每个option元素是否具有相同的value属性。如果是这样的话--使用Array#forEach对其中的每一个应用selected支柱。

代码语言:javascript
复制
let parent = document.getElementById('catalogsearch_specification2'),
    values = Array.from(parent.children).map(v => v.value);
    
    [...new Set(values)].length == 1 ? Array.from(parent.children).forEach(v => v.selected = true) : null;
代码语言:javascript
复制
<select multiple="" class="form-control" id="catalogsearch_specification2">
  <option value="B-3-7">aaa</option>
  <option value="B-3-7">bbb</option>
  <option value="B-3-7">ccc</option>
  <option value="B-3-7">ddd</option>
</select>

票数 3
EN

Stack Overflow用户

发布于 2017-07-03 09:58:01

这个片段将帮助您理解如何从子节点检索值.

代码语言:javascript
复制
var obj = {};
var i = 0
$("#catalogsearch_specification2 option").each(function() {
  //You can write you logic here.
  
  if(!obj.hasOwnProperty(this.value)) {
    obj[this.value] = {"value" : this.value, "duplicate" : 1};
  } else {
    obj[this.value].duplicate = (obj[this.value].duplicate) + 1;
  }
  
});

console.log(JSON.stringify(obj));
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select multiple="" class="form-control" id="catalogsearch_specification2">

<option value="B-3-7">aaa</option>
<option value="B-3-7">bbb</option>
<option value="B-3-7">ccc</option>
<option value="B-3-7">ddd</option>

</select>

这里我使用id "catalogsearch_specification2“的所有子选项元素。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44882597

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档