web-dev-qa-db-ja.com

jQueryは複数の属性に一致します

次のマークアップがあり、Allラジオボタンをオンにします。

<ul>
    <li><input type="radio" value="All" name="Foo"/>All</li>
    <li><input type="radio" value="New" name="Foo"/>New</li>
    <li><input type="radio" value="Removed" name="Foo"/>Removed</li>
    <li><input type="radio" value="Updated" name="Foo"/>Updated</li>
</ul>

属性で照合したいのですが、2つの属性、@name='Foo'および@value='All'

このようなもの:

$("input[@name='Foo' @value='all']").attr('checked','checked');

誰かがこれがどのように行われるかを示すことができますか?

45
zadam

次のHTMLファイルは、これを行う方法を示しています。

<html>
  <head>
    <script type="text/javascript" src="jquery-1.2.6.pack.js"></script>
    <script type="text/javascript">
      $(document).ready(function(){
        $("a").click(function(event){
          $("input[name='Foo'][value='All']").attr('checked','checked');
          event.preventDefault();
        });
      });
    </script>
  </head>
  <body>
    <ul>
      <li><input type="radio"  value="All"  name="Foo"  />All</li>
      <li><input type="radio"  value="New"  name="Foo"  />New</li>
      <li><input type="radio"  value="Removed"  name="Foo"  />Removed</li>
      <li><input type="radio"  value="Updated"  name="Foo"  />Updated</li>
    </ul>
    <a href="" >Click here</a>
  </body>
</html>

リンクをクリックすると、目的のラジオボタンが選択されます。重要な行は、checked属性を設定する行です。

68
paxdiablo

私はこれに似た壁に頭を打ちましたが、jQuery 1.3では受け入れられた答えで使用されている構文は機能する唯一の構文であることを指摘したいだけです。質問者は、jQueryではまったく機能しない式に@構文を使用します。うまくいけば、これは次の人がGoogle = pを介してこの質問に遭遇するのに役立つ

明確にするには、使用する必要があります

jQuery('input[name=field1][val=checked]') 

ではなく

jQuery('input[@name=field1][@val=checked]')
13
easel