2015-01-06 2 views
2

배열의 다른 데이터와 함께 동적 javascript 함수와 확인란을 연결해야합니다. 예를 들어.html 코드에 javascript 함수를 삽입하십시오.

var arr = ['hello', 'world']; 
arr.unshift('buddy'); 
var index = 1; 
arr.unshift('<input type="checkbox" id = "' + index + '" onchange="boxChange(" + index + ")>'); 

상기 어레이의 첫 번째 요소는 onchange를 이벤트되어있는 체크 박스이다 I는 다음 JavaScript 배열을 갖는다. 이 이벤트는 전달 된 인덱스가있는 boxChange 함수를 트리거합니다.

위 체크 박스 이벤트가 작동하지 않지만 구문 (따옴표)이 맞지 않습니다. "따옴표"를 수정하는 데 도움이 필요합니다.

감사

나는

+1

인라인 이벤트 처리기의 경우에는 눈에 거슬리지 않는 스타일이 필요합니다. – atmd

+0

죄송합니다. 눈에 잘 띄지 않는 스타일은 무엇입니까? – TonyGW

+0

js에서 문자열을 연결하는 방법을 이미 알고있는 것처럼 보입니다. 따라서 두 번째'index' 변수에서도 동일한 작업을 수행하십시오. 하지만 따옴표가 어쨌든 일치하지 않습니다 ... –

답변

1

http://jsfiddle.net/qq0dsz0f/는 일반적으로 말하기 마크 업을 혼합 논리가 좋은 생각이 아니다 여기 jsFiddle 작성된 imcomplete 코드가 있습니다. 너는 너 자신을 볼 수있다. - 사소한 방법으로 DOM을 조작하기 시작하자마자, 물건이 정말로 털이 빠르다. 따옴표를 올바르게 사용하는 것에 대해 걱정할 필요가 없습니다.

// First, let's create the element itself. 
var element = $('<input type="checkbox" id="' + index + '">"); 

// Now, let's attach the logic. 
element.on('change', function() { 
    alert(index); 
}); 

// Now do whatever you want with 'element'. 

이 구문이 훨씬 깨끗하지가 등

jQuery를 사용하면 그 자체로 요소를 만들 수 있습니다, 그것은 다양한 이벤트 핸들러를 연결 한 후 문서에 추가, 보관?

두 번째로 루프 내부에서이 코드를 사용하면 함수가`index '값을 캡처하는 방법 때문에 이상한 동작이 발생할 수 있습니다. 이 경우에는 this question on capturing variables in JavaScript을 볼 수 있습니다.

+1

대리인을 사용한 경우 사실 더 깨끗해 질 수 있습니다. 그런 다음 핸들러를 붙이면됩니다 : $ ('# table1'). on ('change', 'input [type = 체크 박스]], function (e) {alert ($ (this) .attr ( – prodigitalson

+0

더 깨끗한 것입니다. –

+0

덧붙여서 id 속성으로 숫자 (인덱스)를 사용할 수 없다는 것을 언급해야합니다. 문자로 시작해야합니다. .. checkbox-1과 같은 것이 괜찮을 것이지만 단지'1'은 그렇지 않다. – prodigitalson

관련 문제