문제

이것이 올바른 방법입니까?

<a id="load" href="#" class="btn load" onclick="request(this); $('#load').fadeOut(2000)">add</a>

<a href="#" id="test" onClick="alert( 'TEST!' )">here</a>

<script language="javascript">
var requests = 2;

function request(self)
{if(self.href != "#")
requests -= 1;

if(requests === 0)
document.getElementById("test").id= "nextstep";}
</script>

요청 = 0이면 id = "test"가 id = "nextstep"으로 변경하려면 원합니다.

도움이 되었습니까?

해결책

당신은 시도 할 수 있습니다 :

document.getElementById('test').setAttribute('id', 'nextstep');

다른 팁

스크립트 태그로 랩핑하는 한 바로 그 일을하는 방법입니다 ...

<script language="javascript" type="text/javascript">
if(requests === 0){
    document.getElementById('test').id = "nextstep";
}
</script>

해당 앵커를 클릭 할 때 이것을 트리거하려고한다면 다음을 사용합니다.

<script language="javascript" type="text/javascript">
function changeID(){
    if(requests === 0){
        document.getElementById('test').id = "nextstep";
        alert('TEST!');
    }
}
</script>

<a href="#" id="test" onclick="changeID()">Test</a>

편집하다: 글쎄, 내가 이것을 게시 한 후 질문의 내용을 변경했습니다 ...

앵커 태그의 ID를 변경하려면 'setattribute'를 사용해야합니다.

getElementById ( 'test') 부분이 오른쪽에 있지만 ".setAttribute ( 'id', 'nextstep');"

도움이되기를 바랍니다!

if (self.href! = "#")

당신의 문제가 있습니다. 링크 hrefs는 브라우저에서 정식화되므로 링크 '#'페이지에서 링크http://www.example.com/'href 속성이있다'http://www.example.com/#'그리고 조건과 일치하지 않습니다.

글로벌 객체 (일명 '창')의 이름과 충돌하므로 'self'라는 이름을 사용하지 마십시오. JavaScript에서 핸들러를 할당하여 'Self'를 통과하는 서투른 것을 피할 수 있습니다.

document.getElementById('load').onclick= request;

대신 onclick 속성, 그런 다음 request ()에서 'this'를 사용할 수 있습니다. 요청 ()도해야합니다 return false; 링크를 준수하기 위해 (브라우저 스크롤을 상단으로 만들 됨). 여전히 사용하는 것이 좋습니다 <button> (또는 <input type="button">), 액션 버튼이기 때문에 새 창이나 북마크에서 열 수있는 링크가 아니기 때문입니다. (항상 CSS를 사용하여 버튼처럼 보이게 할 수 있습니다.)

HTML에 setAttribute ()를 사용하지 않으면이 사용법과 관련이없는 IE에 문제가 있습니다. 환경 element.id 이미 괜찮 았습니다.

그러나 이것은 모든 것이 어떤 경우에도하고 싶은 일을하는 이상한 방법처럼 보입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top