0

ページの横にブログエントリのタイトルを一覧表示するサイドバーナビゲーションがあります。現在の完全なブログエントリページのタイトルのテキストをチェックし、サイドバーナビゲーションの対応するタイトルと一致させるjqueryを作成しようとしています。これにより、アクティブな状態のリンクのスタイルにクラスを適用できます...しかし、私はそれを完全には理解していません!サンプルページへのリンクは次のとおりです:http://ncw-commercial.com/property-listings/eastpoint-plaza-lot.html、以下は私の現在のコードです。また、:containsを使用してみましたが、直接テキストではなく変数で機能させる方法を理解できませんでした。

$('.single-journal-entry-wrapper .journal-entry .title').each(function(){ 
      var activeTitle = $(this).text();
      $(".feedburnerFeedBlock .headline a").filter(function(index) {
         return $(this).text() == "activeTitle";
      }).parent().addClass("activeTitle");
}); 
4

1 に答える 1

1

私はあなたが非常に近いと思います(セレクターが正しいと仮定して)。周りの引用符を削除するだけactiveTitleです(そうでない場合は、文字列と比較しています"activeTitle"):

$('.single-journal-entry-wrapper .journal-entry .title a').each(function(){ 
      var activeTitle = $(this).text();
      $("#sidebar1 .section .headline a").filter(function(index) {
         return $(this).text() == activeTitle;
      }).parent().addClass("activeTitle");
});

:contains()セレクターを使用することもできます。

$('.single-journal-entry-wrapper .journal-entry .title a').each(function(){ 
      var activeTitle = $(this).text();
      $("#sidebar1 .section .headline a:contains('" + activeTitle + "')")
      .parent().addClass("activeTitle");
});

このページへのリンクはあまり役に立ちません。どういうわけか、どのタイトルをどのリンクと一致させたいのかわかりません。ごめん。

アップデート:

わかりました。問題は、両方の文字列(タイトルと、サイドバーのリンクが含まれていなかったタイトルに( )が含まれているため、リンク内の文字列が一致しなかったことです。これを呼び出すと空白に変換されますが、どういうわけか一致しません。 Eastpoint Plaza Lot.text()

これは、を介してタイトルを取得し、をスペース.html()に置き換えることで解決できます。 

$('.single-journal-entry-wrapper .journal-entry .title a').each(function(){ 
      var activeTitle = $(this).html().replace(' ', ' ');
      $("#sidebar1 .section .headline a:contains('" + activeTitle + "')")
      .parent().addClass("activeTitle");    
});

テストのために、私はあなたのすべてのHTMLコードをコピーしました、そしてそれは今私のために働きます。試してみる。最大の問題は、タイトルにHTMLでエンコードされた文字が含まれている可能性があることです。そこで、さらに問題が発生した場合にそれらを変換するライブラリを見つけてください。

于 2010-04-09T19:35:27.010 に答える