3
이 작은 작업을 수행 할 수 없습니다. 문제가 무엇인지 모르겠지만 배열 요소를 정의 할 수 없으며 경고는 항상 NaN을 돌려줍니다. jQuery 선택기에 경고하려고 시도했지만 완벽하게 작동합니다. 뭐가 문제 야? '높이'또는 '폭'속성이 이미지 중 하나에 설정되지 않았거나 다음 NaN의 결과를 초래할 수도 함께 나누기 위해 노력하는 숫자가 아닌 경우배열 요소를 정의 할 수 없습니다.
var sldr = $("#slider img"),
count = sldr.length-1,
containerHeight = $("#slider").css('height'),
images = new Array(),
imgHeights = new Array(),
imgWidths = new Array(),
imgSlices = new Array(),
choosenSlice = '',
slicer = '';
var i=0;
for (i=0;i<=count;i++){
images[i] = $("#slider img:eq("+i+")");
imgHeights[i] = $("#slider img:eq("+i+")").attr('height');
imgWidths[i] = $("#slider img:eq("+i+")").attr('width');
imgSlices[i] = (Math.round(imgHeights[i]/containerHeight))-1;
alert(imgSlices[i]);
}
감사합니다, 그것은했다. 하지만 왜 내가 숫자 이외의 것을 저장할 수 없습니까? 'code'images [i] = $ ("# 슬라이더 img : eq ("+ i + ")");'code' 이것은 예를 들어 객체가 될 것입니다 ... 그리고 그들은 태그에 설정되어 있습니다 ... 이해하지 못했습니다 ... – wintercounter
숫자 이외의 것을 저장할 수는 있지만 수학을 사용하면 NaN이됩니다. 높이와 너비와 같은 태그의 속성은 궁극적으로 문자열입니다. 문자열의 숫자 표현 일 수도 있지만 여전히 문자열 유형입니다. 무슨 일이 벌어지고있는 것처럼 들리지만, 너비를 "400"으로 설정해도 브라우저가이를 "400px"로 해석 할 수 있습니다. 여분의 숫자가 아닌 문자는 아마도 구문 분석하지 않고 번호로 취급되지 않을 것입니다. – Zach
명확히하기 위해 여기에서 진짜 문제는 문자열의 나누기 (다음 줄에 있음)입니다.이 문자열은 해당 문자열에 사용되는 값 대신 문자열 대신 숫자를 저장함으로써 해결됩니다. 일반적으로 배열에 원하는 것을 저장할 수 있습니다. – Zach