2012-04-18 3 views
1

가 나는 동적으로 새로운 사업부를 만들고 그 사업부에 onclick 이벤트를 추가하고의 값을 전달하려고이 SAMPLE_1 방법에서 DIV의 onclick 방법'this'값을 한 자바 스크립트 함수에서 다른 자바 스크립트 함수로 전달할 수 없습니까?

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

에서 자바 스크립트 함수를 호출하고 '이'에서 가져온 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 개발자 도구로이 동적 사업부를 찾고 있어요 "sample_1_1" divSelected 값을 그냥 쓰는 대신에 :

sample_2([object HTMLDivElement]); 

divSelected 객체를 sample_1에서 sample_2로 전달하려면 어떻게해야합니까?

나는이 호출을 참조하는 첫 번째 div의 참조를 sample_1_1에 전달하려고하고 있는데, 거기에서 div를 만들고 div의 onclick 이벤트를 새로 만듭니다. 동일한 div를 전달하려고합니다. 첫 번째 div의 sample_1_1 메소드에서 생성 된 div의 onclick 메소드에 대한 참조.

+4

div에는 'value' 속성이 없습니다. 'divSelected.value'로 무엇을 얻을 것으로 기대하십니까? – fcalderan

+0

onclick 처리기를 정의 할 때 문자열 연결을 수행하고 있지만 작동하지 않습니다. 어쨌든 그것을 전달하는 이유는 무엇입니까? 'this'를 다시 사용하고'divSelected.parentNode.parentNode'를 실행하여'sample_1'을 가져 오면됩니다. –

+0

Lee Kowalkowski - 실제로 div 'sample_1'은 'sample_1'메서드를 호출하는 div와 다릅니다. 해당 div의 참조를 다음 메소드로 전달해야합니다. 나는 그것을 어떻게 얻을 수 있습니까? –

답변

1

나는 당신이하려는 것을 이해하지 못합니다. 일반 자바 this에는 value 속성이 없습니다. 당신은 DIV의 내용을 얻으려고 노력하는 경우 JQuery와 통해이 (안 value을 통해)하지만 $(this).html()를 수행하여 사업부의 내용을 얻을 수 있기 때문에

, 당신은 this$(this)을 혼합한다. 당신의 작은 예를 here했다

<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()); 
} 

1

으로는 의견, DIV 요소가 속성이 없습니다 말했다 ... : 뭔가처럼

그래서 가능한 솔루션이 될 것입니다. div 내의 텍스트에 액세스하려면 innerHTML을 사용하십시오. 매개 변수 전달은 실제로 제대로 작동하지만 문을 확인하십시오.

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

} 


function sample_2(divSelected){ 
    /* Some Code */ 
    alert(divSelected.innerHTML); 
} 
관련 문제