2010-03-03 6 views
0

이 코드를 사용하여 이미지의 제목을 변경하고 있습니다.IE 스플 라이스 및 참여 문제

기본적으로 대시가 분할되어야하며 (적어도 하나는 항상 있어야 함) 첫 번째 부분은 제목으로, 나머지 대시는 설명으로 사용해야합니다.

이것은 FF에서는 제대로 작동하지만 IE에서는 (v8에서 테스트 한) 설명 선에 '개체가이 속성이나 메서드를 지원하지 않습니다.'라는 메시지가 나타납니다.

나는 모든 수의 테스트를 시도했지만 IE는 연결이 된 후에 부품 [0]을 좋아하지 않습니다. 어떤 아이디어?

$('.right ul li img').each(function() { 
parts = $(this).attr('title').split('-'); 
title = $.trim(parts[0]); 
parts.splice(0, 1); 
description = $.trim(parts.join('-')); 
title = '<strong>' + title + '</strong><br />' + description; 
$(this).attr('title', title); 
}); 

답변

0

"부품"을 검사하여 디버깅 내용을 확인 했습니까? 두 줄 사이의 경고 (부분)가 시작됩니다.

사이드 코멘트 : 전역 변수, 부분, 제목, 설명을 정의하고 있습니다. 여기에 로컬 변수가 필요할 수 있습니다. 은 "VAR"키워드, 예 사용해보십시오 : 오류에 대한

var parts = 6; 
var notparts = 7; 

$('.right ul li img').each(function() { 
    parts = ["a", "b"]; 
    // ... 
    var notparts = "foo"; 
    // ... 
}); 

alert(parts); // => "a, b" alerted 
alert(notparts); // => "7" alerted 
+0

얼마나 고맙습니다, 감사합니다! – fire

0

확실하지,하지만 여기에 대한 대안입니다 :

$('.right ul li img').attr('title', function() { 
    var parts = this.title.match(/^([^-]+)-?(.*)/); 
    if (parts) 
    return "<strong>" + $.trim(parts[1]) + "</strong><br />" + $.trim(parts[2]); 
    else 
    return this.title; 
}); 

사이드 노트 : 나는 생각하지 않는 제목 내에서 HTML 마크 업 속성은 허용/유효합니다.