- 締切済み
要素名がスペースを含む場合のjQueryのセレクタ
jQueryのセレクタで、"btn01 bi"という要素内のspanを 指定したいと思っています。 しかし、以下の書き方ではダメなようです。 $('.btn01 bi span').click(function(){ … スペースが含まれるからなのはわかりますが、この場合はどう書けば 良いのでしょうか? ご教授ください。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- ORUKA1951
- ベストアンサー率45% (5062/11036)
classは、 【引用】____________ここから class = cdata-list [CS] この属性は、ある要素に1つのクラス名を割り当てるか、または複数のクラス名を設定する。 幾つの要素に対してでも、同じクラス名あるいはクラス名群が割り当てできる。複数のクラス名については、空白文字によって区切らねばならない。  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[The global structure of an HTML document (ja)( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/struct/global.html#h-7.5.2 )]より 半角スペースで区切られた値のリストとして機能します。 よって <span class="btn01 bi"></span> >"btn01 bi"という要素内のspanを ではなくて 「class属性の値リストに(btn01,bi)をもつspan要素を指定する」 には、 $('span.btn01.bi').click(function(){ です。 「class属性の値リストに(btn01,bi)をもつ要素内のspan」 (例)<p class="btn01 bi"><span>・・・ の場合は、 $('p.span.btn01 span').click(function(){ または $('*.span.btn01 span').click(function(){ p要素に限定しない $('.span.btn01 span').click(function(){ p要素に限定しない あるいは、 「class属性の値リストに(btn01,bi)をもつ要素の直接の子どもであるspan」 の場合は $('p.span.btn01>span').click(function(){ または $('*.span.btn01>span').click(function(){ p要素に限定しない $('.span.btn01>span').click(function(){ p要素に限定しない 基本的には、 セレクタ( http://momdo.s35.xrea.com/web-html-test/spec/CSS21/selector.html#pattern-matching )と同じです。
- ONEONE
- ベストアンサー率48% (279/575)
"btn01 bi"は要素ではなくclassですよね? ".btn01.bi span"のようにクラスを連続させて指定してみてください。 対象を直下のspanに限定するときは スペースを>にしてください。