2017-02-16 2 views
-2

,이누락은) 내 코드에 문제가

값의 ID가, urlIMG이 NewImg은 []

var srcArray = new Array(); 
for(var i=0;i<num_new_data;i++) 
{  
    srcArray.push(urlIMG+NewImg[i]); 
    Show_Img += '<div class="col-xs-4 col-sm-5cols" id="s_img_click_'+id+i+'" onClick="Test('+id+','+i+','+srcArray+');" > <div class="thunho"> <img id="img_'+id+i+'" src="'+urlIMG+NewImg[i]+'" /></div></div>'; 
    count ++; 
} 

function Test(id,i,srcArray) 
{ 
//Something 
} 

지구 내 코드입니다 , 그것은 오류를 보여줍니다 :

profile.html:1 Uncaught SyntaxError: missing) after argument list

onClick="Test('+id+','+i+');"과 같은 srcArray가 제거되면 작동합니다. 도와주세요, 고마워요!

+0

아, 죄송합니다, 이것은 내가 시도하고 마지막 코드는, 내가 편집 해하고있다. 그냥 새로운 Array() –

+0

오류가 구문 오류라고합니다. 고치고 달려라. – sa77

답변

1

JavaScript 내부에 <div … onClick="…">의 JavaScript (Test(…, …, …);)가 생성됩니다. 지저분하고 오류가 발생하기 쉽습니다. 다행히도 자바 스크립트에서는 HTML 문자열을 만들 필요가 없습니다. 대신 요소를 만들어 문서에 직접 삽입 할 수 있습니다!

// Create the <img> 
var image = document.createElement('img'); 
image.id = 'img_' + id + i; 
image.src = urlIMG + NewImg[i]; 

// Create <div class="thunho"> 
var miniature = document.createElement('div'); 
miniature.className = 'thunho'; 

// and add the image to it: 
miniature.appendChild(image); 

// Create the outer <div> 
var container = document.createElement('div'); 
container.className = 'col-xs-4 col-sm-5cols'; 
container.id = 's_img_click' + id + i; 

// and add the thumbnail to it: 
container.appendChild(minature); 

// Finally, add the 'click' listener as a function instead of text, 
// though with some extra work; see: 
// https://stackoverflow.com/questions/750486/javascript-closure-inside-loops 
container.onclick = (function (i) { 
    return function() { 
     Test(id, i, srcArray); 
    }; 
})(i); 

이제 어디서나 container을 넣을 수 있습니다. something.innerHTML = Show_Img;을 설정하는 경우 이제 요소를 something.appendChild(container);으로 추가합니다.

몇 가지 유용한 (I 희망) 자원 :

+0

해보자. –

관련 문제