0

単純な問題だと思っていたものに問題があります。

一連のブログ投稿のアンカー リンクの作成を自動化したい - each()コマンドを使用して、親 div の子をループしようとしましたが、正しく動作させることができず、今は混乱していて、自分が何をしているのかわかりません。((@_@))

ブログのコンテンツは次のように構成されています。

<div id="content">
 <div class="list-journal-entry-wrapper">
  <div class="post-text">
    <div id="item101" class="journal-entry">...</div>
   </div><div class="post-text">
    <div id="item102" class="journal-entry">...</div>
   </div><div class="post-text">
    <div id="item103" class="journal-entry">...</div>
   </div>
  </div>
 </div>
</div>

私がやりたいことは、次のようid="item101"に、各.journal-entry投稿に一意の項目番号 ( ) を使用して、アンカー リンクのリストを作成することです。

<div id="news-links">
  <a href="#item101">Post 101</a><br/>
  <a href="#item102">Post 102</a><br/>
  <a href="#item103">Post 103</a><br/>
</div>

id="xxxxx"各投稿の検索に問題があります。

その ID を取得したら、そのid値をhref

<a href="#xxxxx">Post xxxxx</a>

each()コマンドについて理解できるように、例を示していただければ幸いです。

または、これを行うより良い方法はありますか?


解決しました!adeneotheCodeParadoxの例のおかげで、私はプロセスでいくつかのことを学び、両方のソリューションから少し学びました.

http://jsfiddle.net/mDSWE/3/

実際の HTML には追加の div があることに注意してください。最終的な jQuery ルーチンはh2.title、リンク テキストとして使用する記事のタイトルを検索し、関数を使用して、アンカー リンクに使用するparents()最初のラッパー div の id 属性を見つけます。id="item12345"href

$('h2.title a').each(function() {
   var el = $(this);
    var id = el.parents('div.journal-entry:first').attr('id');
   var insert = '<a href="#' + id + '">' + el.text() + '</a></br>';
   $('#news-anchors').append(insert);
});

美しく機能しているので、時間を割いて手伝ってくれてありがとう。

4

2 に答える 2

3
var newsLinks = '<div id="news-links">';

$(".journal-entry").each(function(index, item) {
    newsLinks += '<a href="#'+item.id+'">Post '+item.id.replace('item', '')+'</a><br/>';
});

newsLinks += '</div>';

フィドル

次のようにすることもできます。

var newsLinks = '<div id="news-links">';

$.each($(".journal-entry"), function() {
    newsLinks += '<a href="#'+this.id+'">Post '+this.id.replace('item', '')+'</a><br/>';
});

newsLinks += '</div>';

フィドル

于 2012-04-15T17:35:41.090 に答える
0
$(".journal-entry").each(function(index, value) {
  $('#news-links').append('<a href="#'+this.id+'">Post '+ this.id.replace('item', '')+'</a>');
});
于 2012-04-15T17:51:37.977 に答える