0

带有左类的 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 ]
    });

});

4

3 回答 3

4

这应该可以解决问题:

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

这是一个小提琴

于 2013-05-02T08:21:42.797 回答
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
    });

});
于 2013-05-02T08:22:06.877 回答
1

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

var not_changed_courses = $(this).find('option:not(:selected)');
于 2013-05-02T08:22:37.287 回答