0

私は Web デザインにはかなり慣れていませんが、数か月前から、html、css、JavaScript などを操作するための基本的な知識を学ぼうとしています。w3cschool などの紹介サイトにある基本的なチュートリアルをすべてフォローして理解しようとしましたが、html の構造や css でのスタイリングに特に問題はありませんでしたが、現在 JavaScript に直面しており、ここに質問がありますが、最初に説明させてください私が達成しようとしていること。

私が想像しようとしているサイトで、別のドメインの別のサイトから取得した記事のいくつかのタイトルと短い説明を含むサイドパネルを作成しました。私の非常に貧弱な経験と Web で見つけた情報により、jQuery がこのタスク、特にその load() メソッドで役立つと考えました。そこで、タイトルがあるソース ページのコピーを .txt 形式で保存した後、ドキュメントの頭に非常に単純なコードを書きました。

$(document).ready(function() {
    $("#myDiv1 p").load("copyOfSite.txt .list a:eq(0)");
    $("#myDiv2 p").load("copyOfSite.txt .list a:eq(1)");
    $("#myDiv3 p").load("copyOfSite.txt .list a:eq(2)");
});

私が呼び出しているタイトルが別のドメインの記事への相対リンクであるため、私のサイトでは機能しないという事実を除いて、これは正常に機能していました。

load メソッドの 2 番目の部分で関数を指定しようとしましたが、読み込んだ href 属性の先頭に他のサイトのドメインを追加する方法が見つかりませんでした。URLを指定するか、ロードされたURLを次のように削除することしかできませんでした

$(document).ready(function() {
    $("#myDiv1 p").load("copyOfSite.txt .list a:eq(0)",function(data){
        $(this).find("[href]").attr('href','http://www.articlesdomain.com')}
    )};

また

$(document).ready(function() {
    $("#myDiv1 p").load("copyOfSite.txt .list a:eq(0)",function(data){
        $(this).find("[href]").removeAttr('href')}
    )};

しかし、どちらの場合も、読み込んだタイトルの href 属性を呼び出して、記事のドメインに追加することができません。それで、それを達成する方法があるのか​​ 、それともタスクへの私のアプローチが完全に間違っているのか疑問に思っています.

前もって感謝します

4

2 に答える 2

0

プロトコルとホスト名を既存の相対 href の先頭に追加する必要があります。現在、href 全体を新しい URL に置き換えています。
関数を使用して各 href を取得し、既にあるものにホスト名を追加するだけです。

$("#myDiv1 p").load("copyOfSite.txt .list a:eq(0)",function(data){
    $(this).find("[href]").attr('href', function(_,href) {
        return 'http://www.articlesdomain.com' + href;
    });
)};

相対hrefはで始まる必要があることに注意してください/。そうでない場合は、先頭に追加されたURLの最後にも追加する必要があります

于 2013-08-02T10:34:28.963 に答える