2015-09-26 40 views
-1

我有一個非常具體的網站,其中網頁上的文字是可點擊的,點擊後會生成一個新的DOM元素。如何獲取點擊網頁上其他元素所產生的DOM的文本內容?

我想創建一個chrome擴展,其中當用戶點擊一個網頁時,點擊觸發一個函數,該函數返回由它的id生成的元素。

現在這是我

<script> 
    document.onclick = function(myFunction) 

    function myFunction() { 
    var x = document.getElementsById("v0") 
    return x 
    } 
</script> 

我無法看到任何東西登錄控制檯時我加載擴展。

是document.onclick是否正確使用?我應該使用getElementByClassName還是getElementById?

+0

你在哪裏登錄到控制檯?我看不到這樣的事情。 – dimakura

+0

開始更改爲'document.onclick = myFunction()' –

+0

我必須添加console.log(x)嗎? – Baleno

回答

0

document.onclick = function(myFunction)是一個錯誤。您正嘗試調用名爲函數的函數並將其返回值分配給document.onclick - 但函數是關鍵字,不能是函數名稱。

要分配myFunction爲onclick處理程序,然後只是功能分配:

document.onclick = myFunction; 

這不會做你雖然多好:myFunction通過ID獲取元素並返回,但返回值的點擊事件處理程序不用於任何事情(除了防止點擊的默認行爲)。

您需要重寫myFunction,因此它對元素做了一些有用的操作。

+0

我希望myFunction返回元素v0的字符串內容,我該怎麼做? – Baleno

+0

@Baleno - 將它返回到哪裏?事件處理函數的返回函數應該是'true'或'false',而不是一個字符串(儘管根據其內容,sting將被視爲「true」或「false」)。 – Quentin

+0

我想我會想要將數據存儲在一個對象中。元素是問題是一個詞,它是定義。 – Baleno

0

你在正確的軌道上。您想要將單擊操作綁定到文檔。點擊發生後,您需要捕獲事件的目標。

使用jQuery:

$(document).click(function(event) { 
    var target = $(event.target); 
}); 

純JS:

document.addEventListener("click", function(event) { 
    event = event || window.event; 
    var target = event.target || event.srcElement; 
}, false); 

從那裏,你可以做任何你想用它。例如:

var id = target.attr('id'); // jQuery 
var id = target.id;   // Javascript 
+0

'var target = $(event.target)'會做什麼? 設置一個名爲target的變量來點擊元素? – Baleno

+0

它把它變成一個jQuery對象... –

相關問題