2

HTML/CSSを超えたあらゆるタイプのコーディングにまったく新しい。周りを見回してみましたが、特定の問題に解決策を適用する方法がわかりませんでした。チェックボックスのリストは次のとおりです。

<input type="checkbox" value="de-borders" /> Choose my border

送信ボタン(5つのチェックボックスがあります)を押すと、チェックされたもののdivが表示されるはずです。だから私は送信のahrefにリンクされた関数を持っています。私が抱えている問題は、ユーザーがボックスのチェックを外し、もう一度送信を押すと、それらのボックスが消える必要があるということです。

これは私が持っているものです(私は助けてくれたので、完全には理解できません):

  var show_panels =(function(){
    $("#de-options input").each(function(index, element) {
        var val = $(element).attr('value');
        if ($("#de-options input").is(":checked"))
        {
            $('#' + val).show();
        }
        else
        {
             $('#' + val).hide();
        }
      });
  });

私が持っているところは「if」が問題です。.eachが原因で、「これらのチェックボックスを確認し、チェックされているかどうかを確認してください...」を指定する方法がわかりません。チェックしました。

だから本当に私は「もし」のために何を置くべきかを知る必要があります。

助けてくれてありがとう。

4

3 に答える 3

0

HTML がこのようにどのように見えるかわかりません。これがこのようなものであり、これが機能するはずであると仮定します。

HTML

<div id="de-options">
  <input type="checkbox" value="de-borders" /> Choose First
  <input type="checkbox" value="de-borders2" /> Choose Srcond
  <input type="checkbox" value="de-borders3" /> Choose Third
</div>

<div id="de-borders"> Div One</div>
<div id="de-borders2">Div Two</div>
<div id="de-borders3">Div Three</div>

<input type="submit" value="save" />

脚本

$(関数(){

    $("input[type='submit']").click(function(e){
      e.preventDefault();

     $("#de-options input[type='checkbox']").each(function() {
       var item= $(this);
       var val = item.attr('value');
       if (item.is(":checked"))
       {
         $('#' + val).show();
       }
       else
       {
          $('#' + val).hide();
       }
    });
  });

});

これが実際のサンプルですhttp://jsfiddle.net/hzpVy/15/

于 2012-04-26T17:34:55.113 に答える
0
   $("#de-options input[type='checkbox']").each(function() {
        var val = $(this).val();
        if($(this).is(':checked')) {
            $('#' + val).show();
        } else {
            $('#' + val).hide();
        }
    });
于 2012-04-26T17:19:45.773 に答える
0

「$(element).attr('value');」に設定された「val」という変数を作成しています。あなたの例では、チェックボックスの値は「de-borders」なので、この場合は val="de-borders"... 今のところ問題ありません。ただし、if ステートメントに入ると、$('#' + val) または $('#de-borders') を非表示にしようとしています。これは、存在しない de-borders の ID を持つページ上の要素を非表示にすると言っています。

代わりに、if/else の内容を次のように置き換えます。 $(element).show(); そして $(element). hide();

于 2012-04-26T17:27:58.143 に答える