2013-07-05 48 views
1

說我有下面的JavaScript代碼如何圖像和鏈接HTTP的JavaScript

function img_find() { 
    var imgs = document.getElementsByTagName("img"); 
    var imgSrcs = []; 

    for (var i = 0; i < imgs.length; i++) { 
     imgSrcs.push(imgs[i].src); 
    } 

    return imgSrcs; 
} 

function link_find() { 
    var links = document.getElementsByTagName("a"); 
    var linkHrefs = []; 

    for (var i = 0; i < links.length; i++) { 
     linkHrefs .push(links[i].href); 
    } 

    return linkHrefs; 
} 

我要實際使用addEventListerner創建自定義的上下文菜單時的鏈接之間的區別或圖像保持不變。我的計劃是將兩個功能合併爲一個,但是如何確定返回的http是否用於鏈接或圖像?由於並非所有圖像源scr都以可識別的圖像擴展名結尾。

+0

看一看jQuery的:那裏,你可以使用幾個選擇標準事件綁定。例如,你可以引入一個css選擇器或者一個檢查src元素的函數 – strauberry

+1

處理程序可以使用'this.tagName'來判斷它是否是'a'或'img'元素。 – Barmar

+0

你可以舉一個你將如何使用'addEventListener()'的例子嗎?你將它綁定到一個元素,從中你可以很容易地識別這個類型。 –

回答

0

你可以返回一個額外的參數,使用對象:

return {links: links, type: "img"}; 

然後,您可以使用這樣的:

var links = find(); 

if(links["type"] === "img") 
    console.log("I'm an image!"); 
else if(links["type"] === "href") 
    console.log("I'm a link!"); 
+0

使用一個對象,而不是一個數組,用於這樣的事情。 – Barmar

+0

@Barmar好的建議,我編輯了我的答案。 –