jquery:查找除触发函数的值之外的所有其他值

时间:2013-05-02 08:16:58

标签: jquery drop-down-menu

通过用户单击“添加”按钮克隆左侧类的div 。所以它是多重的。

我需要找到所有其他课程的当前值,除了触发此功能的那个[已经找到“changed_course”变量中的值]

<div id="ds_relation_main_block">




<div class="left">
    <select name="course[]" class="input-block-level course">
        <option value="55" selected="selected">BBA</option>
        <option value="56">BSc</option>
        <option value="57">BIT</option>
    </select> <!-- end of select -->
</div> <!-- end of left -->

<div class="left">
    <select name="course[]" class="input-block-level course">
        <option value="55" selected="selected">BBA</option>
        <option value="56">BSc</option>
        <option value="57">BIT</option>
    </select> <!-- end of select -->
</div> <!-- end of left -->

<div class="left">
    <select name="course[]" class="input-block-level course">
        <option value="55" selected="selected">BBA</option>
        <option value="56">BSc</option>
        <option value="57">BIT</option>
    </select> <!-- end of select -->
</div> <!-- end of left -->

<script>
jQuery(function($) {
    $('.course').change(function(evt) {
        var changed_course = $(this).find('option:selected').val();
        //console.log(changed_course);

        //need to find all other course's current values 
        //except the one which triggered this function [ already found the value in //"changed_course" variable ]
    });

});

3 个答案:

答案 0 :(得分:4)

这应该可以解决问题:

var otherValues = $('.course').not(this).map(function() {
    return this.value
}).get();

Here's a fiddle

答案 1 :(得分:1)

下面的代码只是迭代其他课程,并将它们与当前课程进行比较。如果它不是触发错误的当前值,则将其添加到数组中。

jQuery(function($) {
    $('.course').change(function(evt) {
        var changed_course = $(this).find('option:selected').val();
        var self = this;

        var otherCourses = [];

        $('.course').each(function()
        {
            if (this != self)
            {
                otherCourses.push($(this).val());

                //Execute the code you want here, it will get all others individually except itself
            }
        });


        //'otherCourses' has a list of the other courses
    });

});

答案 2 :(得分:1)

您可以使用:not() selector选择与给定选择器不匹配的所有元素。

var not_changed_courses = $(this).find('option:not(:selected)');