Javascript 显示具有属性的元素 水 啤酒 AAAAAAAA bbbbbbbb CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

Javascript 显示具有属性的元素 水 啤酒 AAAAAAAA bbbbbbbb CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC,javascript,jquery,html,Javascript,Jquery,Html,我想:如果我用属性test=“one”点击radio Water,那么应该用属性test=“one”显示所有div。如何使用jQuery实现它 LIVE:将标签附加到水文本,并使用属性选择器单击处理程序: <input type="radio" name="group2" test="one" value="Water"> Water <input type="radio" name="group2" test="two" value="Beer"> Beer<br

我想:如果我用属性test=“one”点击radio Water,那么应该用属性test=“one”显示所有div。如何使用jQuery实现它


LIVE:

将标签附加到
文本,并使用属性选择器单击处理程序:

<input type="radio" name="group2" test="one" value="Water"> Water
<input type="radio" name="group2" test="two" value="Beer"> Beer<br>

<div style="display: none" test="one">aaaaaaa</div>
<div style="display: none" test="two">bbbbbbb</div>
<div style="display: none" test="one">ccccccc</div>

水
$('label')。单击(函数(){
//逻辑告诉我,您只想显示
//属性与选定的单选元素匹配;隐藏以前的元素:
$('div[test]')。hide();
//获取测试值:
var test=$('#'+$(this.attr('for')).attr('test');
$('div[test=“”+test+'“]”)。show();
});
试试这个:

<label for="option1">
    <input type="radio" name="group2" id="option1" test="one" value="Water"> Water
</label>

<script>
$('label').click(function() {
    // Logic tells me that you want to only show the test elements whose
    //   attribute matches the selected radio element; Hide the previous ones:
    $('div[test]').hide();

    // Get test value:
    var test = $('#' + $(this).attr('for') ).attr('test');

    $('div[test="' + test + '"]').show();
});
</script>

请记住,在这里创建自己的属性是无效的。如果你使用HTML5,你应该考虑使用<代码>数据< /代码>属性来存储你需要与每一个元素相关的任何信息。

jsFoDels:

$("input[type='radio']").click(function() {
    var test = $(this).attr("test");
    $("div[test]").hide();
    $("div[test='" + test + "']").show();
});

我相信这是你要找的东西

$("input[type=radio][value=Water]").click(function()
                                           {
                                               $("[test=one]").show();
                                           });​
试试这个

​$(':radio[name="group2"]')​.click(function(e){    
    var test = $(this).attr('test');
$('div[test]').hide();
$('div[test='+test+']').show();
    });​
​$(':radio[name="group2"]')​.click(function(e){    
    var test = $(this).attr('test');
$('div[test]').hide();
$('div[test='+test+']').show();
    });​
jQuery(document).ready(function(){
    var yourAttributeName = 'test';
    var allDivs = jQuery('div['+yourAttributeName+']');

    jQuery('input['+yourAttributeName+']').click(function(){
        allDivs.hide().filter('[' + yourAttributeName + '=' +     jQuery(this).attr(yourAttributeName) + ']').show();    
    })
    //check the init checked
    .filter(':checked')
    //and fire click event to filter
    .click();
});