2009-04-07 4 views
2

데이터베이스에서 AJAX를 통해 데이터를 가져오고 select 문에 태그를 추가하고 있습니다. 다음 코드는 Firefox에서 작동하지만 IE에서는 부분적으로 만 작동합니다. IE의 문제는 드롭 다운에 옵션 요소가 만들어 지지만 "text"속성 값이 비어 있습니다 (드롭 다운이 30 개의 빈 행으로 나타납니다!) 그러나 "value"속성 값이 올바르게 설정됩니다 (이는 기본 키 내 데이터베이스에서). "텍스트"이외의 IE에서 설정해야하는 다른 필드가 있습니까? 아래 코드 teh에서 굵게 텍스트 문제가 거짓말을 생각합니다 .BTW, 값 비어 있지 않습니다 및 퍼팅 시도했다 . 문자열 그 자리에 그대로 그것은 여전히 ​​IE에서 비어Jquery가 IE7에서는 작동하지 않지만 <select>은 Firefox에서 작동하지만 Firefox에서는 작동합니다.

코드는 다음과 같습니다

$.each(data, function(key,value){ 
    $("<option>").attr("value", key).attr("text",value).appendTo("#select1"); 
}); 

답변

7

내가 대신()는 .text 사용하려고합니다 :

,336,

나는 이것이 당신이 가고있는 것이라고 생각합니까?

+0

네 솔루션은 IE와 Firefox 모두에서 정확하게 작동했습니다. .attr ("text", value)를 사용하는 인터넷의 예가 많이 있습니다. 해결책을 가져 주셔서 대단히 감사합니다! – Dan

+1

가 자동으로 그 안에 설정 한 HTML을 탈출) (또한는 .text 기억, 즉는 .text ("foo는")는 "</EM > < 그들을 > foo는"로 설정됩니다. HTML을 포함 시키려면 .html()을 사용하십시오. – cdmckay

0

게시 된 솔루션이 맞다고 생각하지 않습니다. 나는 그것이 있어야한다고 생각 :


$.each(data, function(key,value){ 
      $("").attr("value", key) 
       .text(value) 
       .appendTo("#select1"); 
     }); 

하지


$.each(data, function(key,value){ 
      $("option").attr("value", key) 
       .text(value) 
       .appendTo("#select1"); 
     }); 

<>의 어떻게 든 떨어졌다되었다. 그러나 ... <>

1

는 블록 따옴표와 함께 다시 시도하자 정수를 통해 반복하는 경우

key/value.toString() - jQuery가 오류를 발생시키지 않고 처리 할 수 ​​있는지 확인하십시오. 부가적인 오버 헤드가 없다.

모두 성능에 관한 것입니다. 맞습니까? :)

$.each(data, 
     function(key,value){ 
      $("option").attr("value", key.toString()) 
       .text(value.toString()) 
       .appendTo("#select1"); 
     }); 
0

altCognito을 포위 할 필요가 정확한지

$.each(data, 
     function(key,value){ 
      $("<option>").attr("value", key) 
       .text(value) 
       .appendTo("#select1"); 
     }); 

"옵션"

이 솔루션은해야한다 :

+0

IE7 (표준 모드)에서 인덱스가 숫자 인 $ ('