170

ローカルのhref値を持つアンカータグと、href値を使用するが、通常とは少し異なる場所に転送するJavaScript関数があります。タグは次のようになります

<a onclick="return follow(this);" href="sec/IF00.html"></a>

と次のようなJavaScript関数

baseURL = 'http://www.someotherdomain.com/';
function follow(item) {
    location.href = baseURL + item.href;
}

これはitem.href「sec/IF00.html」の短い文字列を返すだけだと思いますが、代わりに完全なhref「http://www.thecurrentdomain.com/sec/IF00.html」を返します。<a>アンカータグに入れた短いhrefだけを引き出す方法はありますか?それとも、自然なHTMLの動作によってそれを失いますか?

文字列操作を使用してこれを行うことができると思いますが、ローカルページが実際には「http://www.thecurrentdomain.com/somedir/somepath/sec/IF00.html」である可能性があり、hrefフィールドが可能性があるため、注意が必要です。または、サブディレクトリが含まれていない可能性があるため(ex href="page.html"vs.のhref="sub/page.html"場合)、最後のスラッシュの前にすべてのものを削除できるとは限りません。

なぜ私がこれを要求しているのか不思議に思うかもしれませんが、それはページがずっときれいになるからです。(アンカータグに配置されているように)短いhrefだけを取得できない場合は<a>、タグに追加のフィールドを挿入することもできlink="sec/IF00.html"ますが、これも少し面倒です。

4

6 に答える 6

349

以下のコードは、アンカーが指すフル パスを取得します。

document.getElementById("aaa").href; // http://example.com/sec/IF00.html

href以下のものは属性の値を取得します:

document.getElementById("aaa").getAttribute("href"); // sec/IF00.html
于 2013-03-15T18:44:20.180 に答える
5

私の場合、# を含む href があり、target.href が完全な URL を返していました。Target.hash は私のために仕事をしました。

$(".test a").on('click', function(e) {
    console.log(e.target.href); // logs https://www.test.com/#test
    console.log(e.target.hash); // logs #test
  });
于 2020-08-19T07:47:36.963 に答える
0

href プロパティは、リンクの href 属性の値を設定または返します。

  var hello = domains[i].getElementsByTagName('a')[0].getAttribute('href');
    var url="https://www.google.com/";
    console.log( url+hello);
于 2016-04-17T07:15:56.997 に答える
-1
document.getElementById("aaa").href; //for example: http://example.com/sec/IF00.html
于 2015-04-23T05:15:32.023 に答える