2012-04-18 37 views
1

我從這個sample_1方法調用從DIV的onClick方法無法將'this'值從一個javascript函數傳遞給另一個?

<div onClick="sample_1(this)" /> 

一個Javascript功能我動態創建一個新的div並在該分區添加一個onclick事件,並試圖通過價值「這個」從了該sample_1函數的參數,但我不能夠給「這」的值傳遞給第二個方法:在它的onClick方法

function sample_1 (divSelected) { 
    if (!$(divSelected).attr('disabled')) { 
     $('div[id=sample_1]').append("<div id='sample_1_1" + categoryID + "' class='selectedActivityCategory' style='background-color:#d9eaf7;' > <img src='../Images/close.png' onclick='sample_2(" + divSelected.value + ");' /> </div>"); 
    } 

} 


function sample_2(divSelected) 
{ 
/* Some Code */ 
} 

當我尋找到IE瀏覽器的開發工具那麼這個動態的div「sample_1_1」而不是傳遞對象divSelected值它只是寫作:

sample_2([object HTMLDivElement]); 

如何將從sample_1中選擇的對象div傳遞給sample_2?

我想訪問第一個div調用並將其引用傳遞給方法sample_1_1,並從那裏我創建一個新的div和onclick事件創建div我試圖通過相同sample_1_1方法中第一個div引用創建的div的onclick方法。

+4

div沒有'value'屬性。你想用'divSelected.value'得到什麼? – fcalderan 2012-04-18 08:31:40

+0

當你定義你的onclick處理程序時,你正在做一個字符串連接,它不會起作用。無論如何爲什麼要通過它?只需再次使用'this',並通過'divSelected.parentNode.parentNode'獲取'sample_1'。 – 2012-04-18 08:43:03

+0

Lee Kowalkowski - 實際上div'sample_1'與調用方法'sample_1'的div不同,我需要將該div的引用傳遞給下一個方法。我怎麼能做到這一點? – 2012-04-18 08:55:04

回答

1

我不明白你在做什麼。普通的Javascript this沒有value屬性。

如果你試圖讓div的內容,你是混合了this$(this),因爲通過JQuery的你可以(不通過value),但通過做$(this).html()得到一個div的內容。

因此,一個可能的解決辦法是這樣的:

<div id="yourdiv">Content...</div> 

$(document).ready(function() { 
    $('#yourdiv').click(function() { 
     sample_1($(this)); 
    }); 
}); 

function sample_1(div_selected) { 
    alert("Contents are: " + div_selected.html()); 
} 

我給你做一個小例子here ...

1

至於說意見,div元素沒有一個財產。如果您想訪問div內的文字,請使用innerHTML。參數傳遞實際上工作正常,只是檢查你是否聲明。

function sample_1 (divSelected) { 
    alert(divSelected.innerHTML); 
    sample_2(divSelected); 

} 


function sample_2(divSelected){ 
    /* Some Code */ 
    alert(divSelected.innerHTML); 
} 
相關問題