JQuery:如何选择相同的类选项

JQuery:如何选择相同的类选项,jquery,html-select,Jquery,Html Select,我的html有同一类的多个下拉框。 我从每个输入框中获取一个值,然后将其作为选择器传递给。我从输入框中得到的值是正确的,但我在选择下拉框时遇到了问题 HTML: find在元素中查找。您的选择框未包含在输入中,因此未找到任何内容。改为将其更改为“下一步”: $(this).next('.ampm').val($(this).val()); 试试这个 $(function () { $('div .hide').each

我的html有同一类的多个下拉框。 我从每个输入框中获取一个值,然后将其作为选择器传递给
。我从输入框中得到的值是正确的,但我在选择下拉框时遇到了问题

HTML:


find
在元素中查找。您的选择框未包含在输入中,因此未找到任何内容。改为将其更改为“下一步”:

     $(this).next('.ampm').val($(this).val());                         
试试这个

$(function () {
        $('div .hide').each(function () {
             $(this).next('.ampm').val($(this).val());                         
             console.log($(this).val());
         });    
});
演示:

对于一个非常酷的解决方案,你可以看看@wirey的评论

$(function() {
    $('div .ampm').val(function() {
                return $(this).prev('.hide').val();
            })
});
筛选正确的选项,并将
selected
属性设置为true

$(function () {
    $('div').each(function() {
        var $div = $(this);
        $div.find('.hide').change(function() {  //inputs change:
            var newInputVal = $(this).val();
            $div.find('.ampm').val(newInputVal);
        });
    });
});
请注意组中的这些更改。然而,这是很多。ampm在父分区中。不确定这是您想要的。这有点晚了,但是尝试用变量来为初学者解释清楚。上面的下一个()选项在某些情况下可能有点脆弱。另外,我认为在一般情况下有一些明显的问题,比如模糊的实际发射时间等等


您在输入标记中迭代选择标记,这是不可能的,因为选择标记不是输入的子项。所以,您可以做的就是迭代输入标记,然后找到它的下一个同级select标记,并为它分配当前输入标记的值

$(function () {
$('div').find('input').each(function(){                
alert( $(this).val());
$(this).next('select').val($(this).val());
});
});

这是一种非常复杂的方法,可以完成与调用
.val完全相同的事情。在一个较大的选择中,您将看到性能差异。即使是这样,这个问题也试图设置一个特定的选择,而不是每个选择。没错。你的答案非常有效。我采取了一种不同的方法,写一些我可以扩展的东西,如果某些东西发生了变化,我就不会破坏它们。例如,如果元素的类或id将来发生更改,它不会破坏您的所有代码。还应该注意,如果没有设置value属性,.val()将不起作用(jquery 1.4.x)。您可以设置一个jsperf来证明这一点吗?(我没有投你反对票,但会有点奇怪,呵呵)通过使用.val(函数
$(函数(){$('div.ampm').val(函数(){return$(this.prev('.hide').val();})可以减少更多)这是一个很酷的问题,但是这样的代码的问题是,如果你把东西放在中间,它就会断裂。我认为从父div开始并抓取每一个都少了一点。brittle@David由于此处给出的所有答案取决于
next()
它是给定的,否则我们必须使用
同级('.ampm'))< /代码> @ ArnPJNNY不,你可以再看下我的。你可以把元素放在中间或者翻转顺序,这没关系,因为我用$div作为起点。无论如何,这是一个微妙的点。如果你仔细看,每一个<代码> div <代码>都必须<代码> AMPM 和<代码>隐藏< /代码>。G
$("select option").filter(function() {
    return $(this).text() == text1; 
}).attr('selected', true);
$(function () {
    $('div').each(function() {
        var $div = $(this);
        $div.find('.hide').change(function() {  //inputs change:
            var newInputVal = $(this).val();
            $div.find('.ampm').val(newInputVal);
        });
    });
});
$(function () {
$('div').find('input').each(function(){                
alert( $(this).val());
$(this).next('select').val($(this).val());
});
});