在jquery中显示和隐藏

在jquery中显示和隐藏,jquery,Jquery,我试图在onload中的jquery中显示和隐藏,但它没有显示 有人能帮我看看并提供解决方案吗?我刚刚点击了列表框想要显示的单选按钮。有什么想法吗 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"> </script> <script> $(window).load = function () { $("#main input[name='B']")

我试图在onload中的jquery中显示和隐藏,但它没有显示 有人能帮我看看并提供解决方案吗?我刚刚点击了列表框想要显示的单选按钮。有什么想法吗

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
</script>
<script>
$(window).load = function () {
  $("#main input[name='B']").click(function () {
    alert("hiiii");
    if ($('input[name=B]:checked').val() == "country") {
      alert("country");


      $("#country").show();
      $("#state,#city").hide();

    }
    if ($('input[name=B]:checked').val() == "state") {
      alert("state");

      $("#state").show();
      $("#country,#city").hide();

    }
    if ($('input[name=B]:checked').val() == "city") {
      alert("city");

      $("#city").show();
      $("#country,#state").hide();

    }
  });
</script>

</head>

<body>
  <table cellpadding="0" cellspacing="0" border="2">
    <tr>
      <td>
        <input type="radio" name="B" value="country">
      </td>
      <td>Country</td>
      <td>
        <input type="radio" name="B" value="state">
      </td>
      <td>State</td>
      <td>
        <input type="radio" name="B" value="city">
      </td>
      <td>City</td>

    </tr>
  </table>

  Productline:
  <select id="productline">
    <option value="Motorcycles">Motorcycles</option>
    <option value="Planes">Planes</option>
    <option value="Ships">Ships</option>
    <option value="Trains">Trains</option>
  </select>
  <select id="country">
    <option value="Australia">Australia</option>
    <option value="Austria">Austria</option>
    <option value="Belgium">Belgium</option>
    <option value="Canada">Canada</option>
    <option value="Denmark">Denmark</option>
    <option value="Finland">Finland</option>
    <option value="France">France</option>
    <option value="Germany">Germany</option>
  </select>

  <select id="state">
    <option value="BC">BC</option>
    <option value="CA">CA</option>
    <option value="CT">CT</option>
    <option value="Isle&#32;of&#32;Wight">Isle&#32;of&#32;Wight</option>
    <option value="MA">MA</option>
    <option value="NH">NH</option>
    <option value="NJ">NJ</option>
    <option value="NSW">NSW</option>
    <option value="NV">NV</option>
  </select>
  <select id="city">
    <option value="Allentown">Allentown</option>
    <option value="Århus">Århus</option>
    <option value="Auckland&#32;&#32;">Auckland&#32;&#32;</option>
    <option value="Barcelona">Barcelona</option>
    <option value="Bergamo">Bergamo</option>
    <option value="Bergen">Bergen</option>
    <option value="Boston">Boston</option>
    <option value="Bräcke">Bräcke</option>
    <option value="Brickhaven">Brickhaven</option>
    <option value="Bridgewater">Bridgewater</option>
    <option value="Brisbane">Brisbane</option>
    <option value="Bruxelles">Bruxelles</option>
  </select>

</body>

$(窗口).load=函数(){
$(“#主输入[name='B']”)。单击(函数(){
警报(“hiiii”);
如果($('input[name=B]:选中')。val()=“country”){
警报(“国家”);
$(“#country”).show();
$(“#州,#市”).hide();
}
if($('input[name=B]:选中').val()=“state”){
警报(“状态”);
$(“#state”).show();
$(“#国家,#城市”).hide();
}
如果($('input[name=B]:选中')。val()=“city”){
警报(“城市”);
$(“#城市”).show();
$(“#国家,#州”).hide();
}
});
国家
陈述
城市
产品线:
摩托车
飞机
船舶
火车
澳大利亚
奥地利
比利时
加拿大
丹麦
芬兰
法国
德国
卑诗省
加利福尼亚州
计算机断层扫描
怀特岛
文科硕士
全日空航空公司
新泽西州
新南威尔士州
内华达州
阿伦顿
奥胡斯
奥克兰 ; ;
巴塞罗那
贝加莫
卑尔根
波士顿
布瑞克
布里克汉
布里奇沃特
布里斯班
布鲁塞尔

这是一个错误的语法:

$(window).load =function()
正确答案是:

$(window).load(function()
但是我的建议是在
$(function(){});
document ready上使用它


所以你可以试试这个:

将id
#main
添加到表中:

<table cellpadding="0" cellspacing="0" border="2" id="main">
   //-------------------------------here----------^^^^^^^^

$(function(){ // <----document ready function shorter version
    $("#main :radio").on('change', function(){ // <---apply change event
        $('#'+this.value).show(); //<---show the target
        if($(e.target).val() == 'country'){
           $('#'+this.value).siblings('select:not(#productline)').hide(); 
        } //--^----------------------------------^hide only if country is checked
    });
});

//-------------------------------这里----------^^^^^^^^
$(函数(){/
  • 您没有
    #main
    元素
  • $(窗口).load=function(){
    应该是
    $(窗口).load(function(){
  • 您缺少
    });

更新

$(窗口)。加载到窗口。onload


并为表指定一个您指定的id属性

 $(window).load(function(){
    $("input[name=B]").change(function(){
     if($('input[name=B]:checked').val()=="country")
     {
            alert("country");


            $("#country").show();
            $("#state,#city").hide();

     }
     if($('input[name=B]:checked').val()=="state")
     {
            alert("state");

            $("#state").show();
            $("#country,#city").hide();

     }
     if($('input[name=B]:checked').val()=="city")
     {
            alert("city");
            $("#city").show();
            $("#country,#state").hide();
     }
});
});
  • 你没有主要元素
  • $(window).load=function(){应该是$(window).load(function()){
  • 使用$(document).ready(函数(){而不是$(窗口).load(函数()){
  • 替代解决方案

    尽量使你的代码简单

    $(window).load(function(){
        $("input[name=B]").change(function(){
            var elem = "#" + $('input[name=B]:checked').val();
            if($(elem).length){
                $("#country,#state,#city").hide();
                $(elem).show();
            }
        });
    });
    
    试试这个:

    $( document ).ready(function(e) {
        $("input[name=B]").click(function () {
            if ($('input[name=B]').is(':checked')) {
                var val =   $('input[name=B]:checked').val();
                switch(val){
                    case "country":
                    alert("country");
                    $("#country").show();
                    $("#state,#city").hide();
                    break;
    
                    case "state":
                    alert("state");         
                    $("#state").show();
                    $("#country,#city").hide();
                    break;
    
                    case "city":
                    alert("city");          
                    $("#city").show();
                    $("#country,#state").hide();
                    break;
                }
            }
        });
    });
    

    您正在使事情复杂化,同时又失去了jQuery的强大功能

    您只需将输入名称更改为
    location
    ,将
    data choose=“location”
    属性添加到
    select
    元素,您需要根据电台显示或隐藏这些元素,并编写更简单有效的代码,而无需硬编码任何内容,如“州”、“市”或“国家”字符串

    这就是您需要的所有jQuery:

    $(function () {
        $('[data-choose="location"]').hide();
        $('[name="location"]').change(function () {
            $('[data-choose="location"]').hide();
            $('#'+$(this).val()).show();
        });
    })
    
    编辑:
    更改了
    。请单击
    。根据的建议更改

    类似的内容?如果($('input[name=B]:checked')。val()=“country”)使用相同的条件
    是否正确Load 3 listbox要隐藏并单击单选按钮显示此代码可能会大大减少和清理:请选择一个应答签出更新的js代码
    $('#'+this.value).show().sibles('select').hide();
    更新此行。LOL这是个好主意,但这也会隐藏其他选择,包括产品线选择。签出:)@kenshin.thebattosai谢谢你的建议,你是对的,更新后应该是这样。不,你没有抓住要点。如果你隐藏同级,产品选择也会被隐藏。你明白吗?选择#产品线是“选择”类型的直接同级。是的,但现在你已经去硬编码了一个值
    #productline
    不利于开发和扩展。如果您需要添加另一个不受影响的select,您将不得不再次接触此JS代码。相反,您可以查看它没有硬编码。您在这里没有遵循“关注点分离”的概念。您还将看到您的JSFIDLE没有按预期工作。哈哈所有这些编辑,你可以让他接受我的答案。哈哈!你应该知道什么表单元素用来产生什么事件,我想你是对的。
    。单击
    可以是
    。更改
    ,不?谢谢!)但是,我不认为选择器应该是
    :radio
    ,因为当OP尝试在页面的其他地方添加另一组单选按钮时,这会产生问题。:)