javascript - 从同一类中的下拉列表 jquery 中获取值

标签 javascript jquery drop-down-menu html-select

是否可以在 jQuery 中单击其中一个时从同一类中的两个不同下拉列表中获取值,而不必编写两个更改函数。例如:

    <div class="selectList">
            <select id="prodVersionList" style="float: left; width: 150px; height: 25px;  margin-right: 20px;">
                <option selected="selected">All Products</option>
                <option selected="selected">Pen</option>
                <option selected="selected">Pencil</option>
            </select>
            <select id="prodAudienceList" style="float: right; width: 150px; height: 25px;">
                <option selected="selected">All Versions</option>
                <option selected="selected">1.0</option>
                <option selected="selected">1.1</option>
            </select>
    </div>

最佳答案

当然可以!

有多种方法可以做到这一点,但您可以只观看选择(如果您愿意,可以使用 id),但我只观看所有选择。

$('select').change((e) => {
   var selected =  $("option:selected").map(function(){ return this.value }).get();
    console.log(selected);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="selectList">
            <select id="prodVersionList" style="float: left; width: 150px; height: 25px;  margin-right: 20px;">
                <option value="1" selected="selected">All Products</option>
                <option selected="selected">Pen</option>
                <option selected="selected">Pencil</option>
            </select>
            <select id="prodAudienceList" style="float: right; width: 150px; height: 25px;">
                <option selected="selected">All Versions</option>
                <option selected="selected">1.0</option>
                <option selected="selected">1.1</option>
            </select>
    </div>

上面的代码将返回一个包含这两个值的数组。基本上我只是找到所有选定的选项并从中创建一个简单的数组。

编辑:抱歉!我最初看错了,给了一半正确的答案。这是一个准确的。

编辑 V2:因为有人指出这里可能存在混淆,所以更直接一些。

$('.selectList select').change((e) => {
   var selected =  $(".selectList > select > option:selected").map(function(){ return this.value }).get();
    console.log(selected);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="selectList">
            <select id="prodVersionList" style="float: left; width: 150px; height: 25px;  margin-right: 20px;">
                <option value="1" selected="selected">All Products</option>
                <option selected="selected">Pen</option>
                <option selected="selected">Pencil</option>
            </select>
            <select id="prodAudienceList" style="float: right; width: 150px; height: 25px;">
                <option selected="selected">All Versions</option>
                <option selected="selected">1.0</option>
                <option selected="selected">1.1</option>
            </select>
    </div>
    
    <div class="altSelect">
    <select id="prodVersionList" style="float: left; width: 150px; height: 25px;  margin-right: 20px;">
                <option value="1" selected="selected">All Products</option>
                <option selected="selected">Pen</option>
                <option selected="selected">Pencil</option>
            </select>
            <select id="prodAudienceList" style="float: right; width: 150px; height: 25px;">
                <option selected="selected">All Versions</option>
                <option selected="selected">1.0</option>
                <option selected="selected">1.1</option>
            </select>
    </div>
</div>

或者另一个:

$('#prodVersionList,#prodAudienceList').change((e) => {
   var selected =  $(".selectList > select > option:selected").map(function(){ return this.value }).get();
    console.log(selected);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="selectList">
            <select id="prodVersionList" style="float: left; width: 150px; height: 25px;  margin-right: 20px;">
                <option value="1" selected="selected">All Products</option>
                <option selected="selected">Pen</option>
                <option selected="selected">Pencil</option>
            </select>
            <select id="prodAudienceList" style="float: right; width: 150px; height: 25px;">
                <option selected="selected">All Versions</option>
                <option selected="selected">1.0</option>
                <option selected="selected">1.1</option>
            </select>
    </div>
    
    
    <div class="altSelect">
    <select style="float: left; width: 150px; height: 25px;  margin-right: 20px;">
                <option value="1" selected="selected">All Products</option>
                <option selected="selected">Pen</option>
                <option selected="selected">Pencil</option>
            </select>
            <select style="float: right; width: 150px; height: 25px;">
                <option selected="selected">All Versions</option>
                <option selected="selected">1.0</option>
                <option selected="selected">1.1</option>
            </select>
    </div>
    </div>

这就是开发,有上百万种方法可以完成一项任务。我不打算用勺子喂养每一种可能性,而只是提供一种实现这一目标的方法。

关于javascript - 从同一类中的下拉列表 jquery 中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53732336/

相关文章:

javascript - HTML5 canvas 游戏将子弹射向鼠标点。

javascript - 如何在 react 中过滤唯一值?

javascript - 为什么在调整 Canvas 大小时出现滚动条?

javascript - 使用 IntelliJ 和源映射启用 JavaScript 调试

javascript - iframe.height(100);正在chrome中添加,并在firefox中设置

css - Blogger css 下拉菜单仅在 IE 中将子菜单项向右移动

jquery - JQM(jQueryMobile)输入元素CSS定位下的Mobile Tooltip

java - WebLogic 服务器在 Ajax 调用之间丢失 session

php - 选择框多级

jquery - 响应式菜单所需的“简单”CSS 调整