2

jQuery を使用して、サーバーからページをロードし、リンク (アンカー) を変更しますが、残りの HTML は同じままにします。これはjQueryで可能ですか?

例:

このコーデ欲しい…

<div>
    text 1<a href="link1.html">link 1</a><br/>
    text 2<a href="link2.html">link 2</a><br/>
    text 3<a href="link3.html">link 3</a><br/>
</div>

...このコードになるには...

<div>
    text 1<a href="link4.html">link 1</a><br/>
    text 2<a href="link5.html">link 2</a><br/>
    text 3<a href="link6.html">link 3</a><br/>
</div>

DIV を含む全体のコードが必要です。

これはjQueryで可能ですか?助けてください!前もって感謝します。:)

編集:ロードする各ページは異なります。完全な HTML を取得し、アンカー HREF を変更してから、結果を返したいと考えています。各ページが異なるため、テンプレートを使用できません。

4

3 に答える 3

1

アンカータグのHREF値を変更する場合は、attr[APIRef]メソッドを使用するだけです。

$('a[href="link1.html"]').attr('href', 'link4.html');
$('a[href="link2.html"]').attr('href', 'link5.html');
$('a[href="link3.html"]').attr('href', 'link6.html');

このコードは、静的HTMLまたは動的にロードされたHTMLで実行できます。違いはありません。

于 2012-07-13T19:10:55.560 に答える
0

jQuery を使用している場合は、何らかのタイプのテンプレート機能を使用してこれを実現することをお勧めします。

これは、jQuery チームが使用を検討していた古いバージョンのテンプレート エンジンです。非推奨になった理由と、新しいバージョンの作成に関する現在の進捗状況に関する最新情報を次に示します。

これを達成するための他のテンプレート方法もあります。他の人が推奨しているように、DOM 操作を介して手動で行うこともできます。

于 2012-07-13T19:09:19.300 に答える
0

jQuery で.attr()メソッドを使用して、要素の属性を変更できます。最初の値は変更する属性で、2 番目の値は新しい値です。

$('a').attr('href','yourlinkhere.html');

...上記は、すべてのリンクを「yourlinkhere.html」を指すように変更します。次のようにすべてのリンクを繰り返すことで、編集したいものをより具体的にすることができます。

$("a").each(function(index){
    $(this).attr('href','link'+index+'.html');
});

...または、次のように特定のリンクをターゲットにすることによって:

$("a[href=link1.html]").attr('href', 'yourlinkhere.html');

...ただし、このようなアプローチの問題は、そのページを指すすべてのインスタンスを置き換えることです。リンクに Id を追加して、次のようにターゲットにしたい場合があります。

$("a#specificLinksId").attr('href', 'yourlinkhere.html');

...または次のようなクラスごと:

于 2012-07-13T19:09:32.110 に答える