日期:2014-05-16  浏览次数:20423 次

用javaScript点击id、点击className、再点击一个tagName

俺这些天在琢磨这个。

用javaScript点击id、点击className、点击tagName

不管是什么,不管有没有效果,只要有id就能点。

点击id:

function clickId(id){
    if(document.all) {
        document.getElementById(id).click(); 
    } 
    else { 
        var evt = document.createEvent("MouseEvents"); 
        evt.initEvent("click", true, true);
        document.getElementById(id).dispatchEvent(evt); 
    }
} 


没有id?,那有className吧,还是能点。

点击className:

function clickClassName(className, num){
    var retnode = [];
    var myclass = new RegExp('\\b'+className+'\\b');
    var elem = document.getElementsByTagName('*');
    for (var i = 0; i < elem.length; i++) {
        var classes = elem[i].className;
        if (myclass.test(classes)) retnode.push(elem[i]);
    }

    var el = retnode[num];
    if(el.click) { 
        el.click(); 
    }else{ 
        try{ 
            var evt = document.createEvent('Event'); 
            evt.initEvent('click',true,true); 
            el.dispatchEvent(evt); 
        }catch(e){alert(e)};  
    }       
} 

连className也没有?那总有tagName吧,还是能点。

点击tagName:

function clickTagName(tagName, num){
    var retnode = [];
    var elem = document.getElementsByTagName(tagName);
    for (var i = 0; i < elem.length; i++) {
        var tagNames = elem[i].tagName;
        if (tagName = tagNames) retnode.push(elem[i]);
    }

    var el = retnode[num];
    if(el.click) { 
        el.click(); 
    }else{ 
        try{ 
            var evt = document.createEvent('Event'); 
            evt.initEvent('click',true,true); 
            el.dispatchEvent(evt); 
        }catch(e){alert(e)};  
    }       
} 

tagName也没有?那我就没辙了。

你搞成plainText,我还有什么办法?

你还不够狠,最狠是你写在纸上。我更没办法了。

 

2楼afusen_xiong6天前 16:53
写的不错,up~
1楼small_wall6天前 14:52
不错啊!