2010-02-14 8 views
3

자바 스크립트를 사용하여 내 페이지의 링크를 클릭하는 방법을 찾고 있습니다. 내 페이지에서 내 데이터베이스에서 각 레코드를 보여줍니다. 마우스 오른쪽 버튼을 클릭하면 '표시'링크가 확장되어 행이 자세히 표시됩니다. 한 번에 모든 행을 확장하고 싶습니다. 이 자바 스크립트에서 링크를 클릭 할 수 있습니까?자바 스크립트를 통해 링크를 클릭하십시오

+1

하나에 오신 것을 환영합니다! – Sampson

답변

2
앵커의 모든 통해 당신은 사이클 수

, 그들을 클릭, 예 :이 페이지의 모든 링크를 클릭 것으로

var myLinks = document.getElementsByTagName("a"); 
for (var i = 0; i < myLinks.length; i++) { 
    myLinks[i].click(); 
} 

참고. 당신은 그냥 밖에서 앉아 부모 컨테이너를 통해 이동하여 링크의 특정 설정에 더 집중할 수 :

var myLinks = document.getElementById("container").getElementsByTagName("a"); 

이는 "컨테이너"의 id 값을 갖는 요소 내의 모든 링크를 얻을 것입니다.

갱신 2 : 코멘트 내

, 당신은 누구의 ID 특정 문자열로 시작에만 링크를 클릭하는 방법을 알고 싶었다. 이제 우리는 우리의 전술 코드로 그것을 구현할 수있는 몇 가지 방법을 살펴 보자 : jQuery를 사용

,이 같은 모든 id='reviews-show...' 링크를 클릭 수 :이 선택 경기에서

$("a[id^='reviews-show']").click(); // simple, eh? 

^=을 정규 표현식 스타일 문자열 으로 시작하여 "reviews-show"로 시작하는지 물어 보면이 문장이 참인 a 태그 만 검색됩니다. 당신은 그냥 평범한 자바 스크립트를 고수하려면

, 우리는 문자열을 확인하기 위해 우리의 첫 번째 코드 블록을 modifiy 수 있습니다

var myLinks = document.getElementsByTagName("a"); 
for (var i = 0; i < myLinks.length; i++) { 
    currentlink = myLinks[i]; 
    if (currentlink.id.substring(0,12) === "reviews-show") { 
    currentlink.click(); 
    } 
} 

업데이트 :

은 분명히 jQuery, 내 마음을 부패하고 내 솔루션이 그대로 작동하지 않습니다. 당신이 떨어져 프레임 워크에서 유지하려면

$("a").click();   //clicks all links on page 
$("#container a").click();//clicks all links within element having id 'container' 

은, 코드의 상단에이 프로토 타입 확장을 추가하려고 : 당신이 (당신이 그것을 좋아하는 것) jQuery를 사용하여 괜찮다면, 당신은이 길을 갈 수 내 원래의 대답은 충분 할 것이다 :

HTMLElement.prototype.click = function() { 
    if (document.createEvent) { 
    var evt = this.ownerDocument.createEvent('MouseEvents'); 
    evt.initMouseEvent('click', true, true, this.ownerDocument.defaultView, 1, 0, 0, 0, 0, false, false, false, false, 0, null); 
    this.dispatchEvent(evt); 
    } else if (this.fireEvent) { 
    this.fireEvent("onclick"); 
    } 
} 

출처 : 스택 오버플로 http://www.barattalo.it/2009/11/18/click-links-with-javascript/

+0

그것은 파이어 폭스와 함께 작동하지 않습니다. 그것을 ff와 함께 작동시키는 방법? – anusuya

+0

@anusuya : 내 업데이트 된 솔루션을 참조하십시오. – Sampson

+0

고마워요 조나단. 그것은 완벽하게 작동했습니다! – anusuya

관련 문제