2009-07-23 5 views
11

私のHTMLは次のようになります:JQuery属性の等価セレクタ([attribute = value])に一重引用符を付けることはできますか?

  <a href="#" id="QuoteTest">Click Here</a> 
     <ul> 
      <li title="this" style="position:relative">one</li> 
      <li title="this" style="position:relative">two</li> 
      <li title="tha't" style="position:relative" >three</li> 
      <li title="tha't" style="position:relative">four</li> 
     </ul> 

Jquery:

$('a#QuoteTest').click(function() { 
    $('li[title=this]').animate({ 'left': '+=40px' }, 'slow'); 
    $("li[title=tha't]").animate({ 'top': '+=40px' }, 'slow'); 
}); 

セレクタを一重引用符で動作させることができません。私は引用符を "\"、バックスラッシュでエスケープしようとしましたが、それは助けになりませんでした。

提案されている方法についてのアイデアはありますか?

答えて

13

は、私はあなたが奇妙な二重のバックスラッシュを、必要だと思う2

$("li[title=tha\\'t]").animate({ 'top': '+=40px' }, 'slow');

+1

感謝を。私が投稿したb/fを試してみてください... – orandov

3

を試してみてください。どのようにjQueryがそれらの文字列をエスケープするかについての何か。したがって、あなたは次のようになります:

$("li[title=tha\\'t]").animate({ 'top': '+=40px' }, 'slow'); 

これは他の状況でも起こりました。今回はこれが動作するかどうかを教えてください。 )(これらの

5

なしIEで私のために働いていないので、私は、フィルタを使用する必要がありました:

$("li").filter(function(index){ 
    return $(this).attr("title") == "tha\'t"; 
}) 
.animate({ 'top':'+=40px' }, 'slow');