자바 스크립트를 통해 버튼 클릭시 <a> 태그의 href를 변경하는 방법


127

버튼 클릭시 자바 스크립트를 통해 태그 의 href속성 값 을 변경하는 방법은 <a/>무엇입니까?

<script type="text/javascript">
  function f1()
  {
    document.getElementById("abc").href="xyz.php"; 
  }
</script>

<a href="" id="abc">jhg</a>
<a href="" id="" onclick="f1()">jhhghj</a>

접근성의 방법은 이러한 방식으로 링크를 사용하지 않도록 지시합니다. 여기 : xkr.us/js/links
무료 컨설팅

답변:


177

이 없으면 href클릭하면 현재 페이지가 다시로드되므로 다음과 같은 것이 필요합니다.

<a href="#" onclick="f1()">jhhghj</a>

또는 다음과 같이 스크롤을 방지하십시오.

<a href="#" onclick="f1(); return false;">jhhghj</a>

또는 return false귀하의 f1기능 및 :

<a href="#" onclick="return f1();">jhhghj</a>

.... 또는 눈에 거슬리지 않는 방법 :

<a href="#" id="abc">jhg</a>
<a href="#" id="myLink">jhhghj</a>

<script type="text/javascript">
  document.getElementById("myLink").onclick = function() {
    document.getElementById("abc").href="xyz.php"; 
    return false;
  };
</script>

추가 제안 event && event.preventDefault && event.preventDefault();하기 전에return false
袁文涛

34

Nick Carver가 거기에서 한 일이 정확히되었지만 DOM setAttribute 메서드를 사용하는 것이 가장 좋을 것이라고 생각합니다.

<script type="text/javascript">
   document.getElementById("myLink").onclick = function() {
   var link = document.getElementById("abc");
   link.setAttribute("href", "xyz.php");
   return false;
   }
</script>

한 줄의 추가 코드이지만 구조적으로 더 나은 방법을 찾습니다.


8
IMO는 여기에 필요하지 않습니다. 이것은 영원히 DOM 속성 이었으며 .href모든 브라우저에서 작동합니다 ... 예를 들어 .getAttribute("id")대신 사용 .id하시겠습니까? :)
Nick Craver

3
당신 말이 맞아요. 특별하거나 다른 일을하지 않습니다. 구조적으로 만 볼 수 있습니다. 나는 나중에 디버깅 / 검토를 위해 모든 DOM 함수를 이런 식으로 갖는 것을 좋아합니다.이 메서드로 함수가 무엇을하는지보기가 더 쉽습니다. 물론 당신의 대답은 : 돈에 대한 권리
jakobhans

7

href속성 제거 :

<a id="" onclick="f1()">jhhghj</a>

링크 스타일이 중요한 경우 :

<a href="javascript:void(f1())">jhhghj</a>

1
<a>없이 태그 href속성? 뭐? 왜?
Shikiryu 2010

1
href를 생략하면 스타일과 동작이 변경됩니다. 그런 다음 링크 대신 앵커 역할을합니다.
Cobra_Fast 2010

1
답장을 보내 주셔서 감사합니다.
Chauhan

1
href가 없으면 앵커가됩니다. 클릭은 링크로 변환됩니다. 매우 정상적입니다.
Free Consulting

1
<a href="#" id="a" onclick="ChangeHref()">1.Change 2.Go</a>

<script>
function ChangeHref(){
document.getElementById("a").setAttribute("onclick", "location.href='http://religiasatanista.ro'");
}
</script>

0

링크를 클릭 할 때 동적으로 변경되도록하려면 :

<input type="text" id="emailOfBookCustomer" style="direction:RTL;"></input>
        <a 
         onclick="this.href='<%= request.getContextPath() %>/Jahanpay/forwardTo.jsp?handle=<%= handle %>&Email=' + document.getElementById('emailOfBookCustomer').value;" href=''>
    A dynamic link 
            </a>

0

여기에 내 의견이 있습니다. 사용자가 제출 버튼을 누를 때 텍스트 상자에서 값을 수집하여 URL을 만들어야했습니다.

<html>
<body>

Hi everyone

<p id="result"></p>

<textarea cols="40" id="SearchText" rows="2"></textarea>

<button onclick="myFunction()" type="button">Submit!</button>

<script>
function myFunction() {
    var result = document.getElementById("SearchText").value;
	document.getElementById("result").innerHTML = result;
	document.getElementById("abc").href="http://arindam31.pythonanywhere.com/hello/" + result;
}		
</script>


<a href="#" id="abc">abc</a>

</body>
<html>


-1

나는 약간 오래된 게시물을 알고 있습니다. 그래도 도움이 될 수 있습니다.

태그 대신에 가능하다면 이것도 가능합니다.

 <script type="text/javascript">
        function IsItWorking() {
          // Do your stuff here ...
            alert("YES, It Works...!!!");
        }
    </script>   

    `<asp:HyperLinkID="Link1"NavigateUrl="javascript:IsItWorking();"`            `runat="server">IsItWorking?</asp:HyperLink>`

이것에 대한 의견이 있습니까?

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.