앵커 (a) 태그에서 로컬 href 값 가져 오기


121

로컬 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 필드가 또는 (예에 대한 그것의 하위 디렉토리가 없을 수 있습니다 href="page.html"대를 href="sub/page.html"나는 언제나 마지막 슬래시 전에 모든 것을 제거 할 수 있도록).

왜 내가 이것을 요청하는지 궁금 할 것입니다. 그것은 페이지를 훨씬 더 깨끗하게 만들기 때문입니다. 짧은 href (앵커 <a>태그에 넣은대로) 만 얻을 수없는 경우 태그에 추가 필드를 삽입 link="sec/IF00.html"할 수 있습니다 (예 :).하지만 다시 말하면 조금 더 복잡 할 것입니다.

답변:


255

아래 코드는 앵커가 가리키는 전체 경로를 가져옵니다.

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

아래 항목은 href속성 값을 가져옵니다 .

document.getElementById("aaa").getAttribute("href"); // sec/IF00.html

6

document.getElementById("link").getAttribute("href");<a>예를 들어 태그 가 두 개 이상있는 경우 :

<ul>
  <li>
    <a href="1"></a>
  </li>
  <li>
    <a href="2"></a>
  </li>
  <li>
    <a href="3"></a>
  </li>
</ul>

다음과 같이 할 수 있습니다 document.getElementById("link")[0].getAttribute("href");. 첫 번째 <a>태그 배열에 액세스 하거나 사용자가 만든 조건에 따라 다릅니다.


2

이 코드는 문서의 모든 링크를 가져 오는 데 효과적입니다.

var links=document.getElementsByTagName('a'), hrefs = [];
for (var i = 0; i<links.length; i++)
{   
    hrefs.push(links[i].href);
}

0

href 속성은 링크의 href 속성 값을 설정하거나 반환합니다.

  var hello = domains[i].getElementsByTagName('a')[0].getAttribute('href');
    var url="https://www.google.com/";
    console.log( url+hello);

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

2
OP는 이미 그것을 시도했지만 원하는 결과를 얻지 못했습니다.
Bobort 2016-04-04
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.