2013-11-25 74 views
0

我已经差不多完成了这一点,但我卡在高级选择器上。我试图选择一个单选按钮旁边的标签,但它比这更复杂一点。选择由类和属性选择的元素的邻居

我有一个选择框。只有选中的值与单选按钮的名称(以及部分)相匹配的单选按钮(及其兄弟标签)。

我有一个JS小提琴的设置,我期待做的是选择1月份,除Jan之外的所有东西都应该隐藏起来,当我选择2月份时,它应该改变。我试图用名字和其他类来做到这一点,但如果它归结为它,我可以添加它们。

http://jsfiddle.net/alpha1beta/G9Sz2/2/

下面是我的工作选择,以获得单选按钮,现在正在看如何让自己的+ label旁边

$('.radio([name="insights[interview_questions[' + curr_sel + ']]"])').css('display','inline'); 

提前感谢!

+1

是否这样? http://jsfiddle.net/zZt6k/ – PSL

+0

@PSL钉钉!非常令人印象深刻!想让它成为答案,所以我可以给你信用? – alpha1

+0

http://jsfiddle.net/aamir/G9Sz2/7/ –

回答

1

尝试

var $radios = $('.radio'), $all = $radios.add($radios.nextUntil('.radio')); 
$("#interview_month").change(function() { 
    var $mon = $radios.filter('.radio[name="insights[interview_questions[' + this.value + ']]"]'); 
    var $cur = $mon.add($mon.nextUntil('.radio')).show(); 
    $all.not($cur).hide() 
}).change(); 

演示:Fiddle

+0

哇,非常不同的方法,但效果很好。 – alpha1

0

试试这个:

$("#interview_month").change(function() { 
    $('.radio , label').hide(); 
    var sel = '.radio[name*="' + $("#interview_month").val() + '"]'; 
    $(sel).add(sel+'+label').css('display', 'inline'); 

});