2011-01-14 6 views
45

JavaScript를 사용하여 동적으로 링크에 href 속성을 추가 할 수 있습니까?JavaScript를 사용하여 링크에 동적으로 "href"속성을 추가 할 수 있습니까?

<a></a>에 기본적으로 href 속성을 추가하고 싶습니다 (즉, 사용자가 웹 사이트에서 특정 이미지를 클릭 할 때).

그래서에서 : 나는 당신이합니다 (<a> 요소에 대한 DOM 객체를 가져 document.getElementById 또는 기타를 사용하는 방법을 알고 있다고 가정

<a href="somelink url">Link</a> 

답변

91
var a = document.getElementById('yourlinkId'); //or grab it by tagname etc 
a.href = "somelink url" 
+0

재미있는합니다. 나는 당신이 필드 (setAttribute'를 사용하여 아래의 나의 해결책과 비교할 때)와 같은 속성에 직접 접근 할 수 있다는 것을 몰랐다. 이 접근 방식이 표준인지 여부를 아는 사람이 있습니까? – mgiuca

+0

감사합니다 모두 - 두 가지 방법으로 작동합니다. – Pavel

+0

DOM 요소 href는 el.href로 직접 설정할 수있는 특성이라고 생각합니다. 대신 setAttribute (el, attr)는 특정 DOM 요소에 사용자 정의 속성을 추가하는 데 사용되므로이 경우 std를 설정하는 데 사용할 필요가 없습니다. attr – stecb

14

:

<a>Link</a> 

나는에 갈 필요 방법).

그냥 DOM 개체의 setAttribute 방법을 사용하여, 어떤 속성을 추가하려면 :

a = document.getElementById(...); 
a.setAttribute("href", "somelink url"); 
+0

pal, setattribute는 속성을 수정하기위한 꽤 비표준입니다. 현재 값에 액세스하거나 수정하려면 속성을 사용해야합니다. 예를 들어, elt.setAttribute ('value', val) 대신 elt.value를 사용하십시오. https://developer.mozilla.org/en/DOM/element.setAttribute#Notes – naveen

+0

@naveen 아마도 XUL에서 "가장 주목할만한 것"이라고 할 수 있습니다. 어떤 다른 값 ("특정 속성"은 매우 모호합니다)이 무엇인지 모르겠지만'setAttribute'는 명확히 표준입니다 (http://www.w3.org/TR/DOM-Level-2-Core/). core.html # ID-F68F082), W3C는 작동하지 않는 속성을 정의하지 않습니다. 반대로 특정 속성 이름에 대해 속성 사용이 실패 함을 보증 할 수 있습니다. 'tagName'과'setAttribute' 같은 것들은 이미 Element 인터페이스의 필드/메소드입니다. W3C 문서에서 속성의 속성을 언급하는 곳은 어디에도 없습니다. – mgiuca

+0

@mgiuca : 마지막 코멘트를 게시 한 후 관련 사양을 찾은 것 같습니다. 나는 속성에 대한 당신의 요지를 이해하지 못하고,'tagName'에 대해서 언급한다. 사용자 정의 속성에 대해 이야기하고 있습니까? –

0

나는이 이미 대답했다 알고 있지만,이 게시물은 내 솔루션에 저를 도왔 때문에, 나는 게시하고 싶었다.

원래, 나는

<a href='somelink' class='button-css'>Click Me</a> 

을 시도하고이 거의했다. 본문은 중심에서 조금 벗어 났으며 실제는 분명하지 않았습니다. 나는 그 때 시도했다 :

"<a href='SomeLink'><input type='button' class='button-css' value='Button Text' /></a>" 

나의 단추는 중대하게 보이고 연결은 작동한다.

+5

나는 이것이 오래된 게시물 인 것을 안다. 그러나 나는 그것을 보았다. 그리고 그것은 나를 괴롭혔다, 그는 이것에 관해 그렇게 명백하게 말하지 않고있다. – Bbit

0
document.getElementById('link-id').href = "new-href"; 

나는 이것이 이전 게시물이지만, 여기에 몇 가지 사람들에 더 적합 할 수있는 한 줄 알고.

0

먼저 <a>Link</a><span id=test><a>Link</a></span>으로 변경하십시오.

그런 다음, 당신이 전화하고있는 자바 스크립트 함수에서 이런 식으로 뭔가를 추가 링크는 다음과 같이됩니다

var abc = 'somelink'; 
document.getElementById('test').innerHTML = '<a href="' + abc + '">Link</a>'; 

이 방법 :

<a href="somelink">Link</a> 
+0

코드에서 "'"기호를 무시하십시오 !! : D –

+0

안녕하세요. Stackoverflow에 오신 것을 환영합니다. OP의 질문은 ** 기존 **'a' 태그에 href를 추가하는 방법에 관한 것 같습니다. * 기본적으로 href 속성을 동적으로 에 추가하려고합니다. 그러나이 대답은 ** href로 ** 태그를 만드는 방법을 설명하는 것 같습니다. –

관련 문제