문제

AJAX를 통해 데이터베이스에서 데이터를 가져오고 select 문에 태그를 추가하고 있습니다.다음 코드는 Firefox에서는 작동하지만 IE에서는 부분적으로만 작동합니다.IE의 문제는 드롭다운에 옵션 요소를 생성하지만 "text" 속성 값이 비어 있다는 것입니다(드롭다운에 30개의 빈 행이 나타남).그러나 "값" 속성 값은 올바르게 설정됩니다(내 데이터베이스의 기본 키임).IE에서 "텍스트" 외에 설정해야 하는 다른 필드가 있습니까?아래 코드의 굵은 텍스트가 문제가 있다고 생각되는 부분입니다.그런데 값이 비어 있지 않고 그 자리에 문자열 리터럴을 넣으려고 했는데 IE에서는 여전히 비어 있습니다.

코드는 다음과 같습니다

$.each(data, function(key,value){
    $("<option>").attr("value", key).attr("text",value).appendTo("#select1");
});
도움이 되었습니까?

해결책

대신 .text()를 사용하려고 합니다.

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

내 생각엔 이게 당신이 하려는 일인 것 같은데요?

다른 팁

블록 따옴표를 사용하여 다시 시도해 보겠습니다.

해결책은 다음과 같아야 합니다.

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

"옵션"은 <>로 묶어야 합니다.

altCognito가 맞습니다...그러나 정수를 반복하는 경우에는 다음을 사용해야 합니다.

key/value.toString() - jQuery는 오류를 발생시키지 않고 처리하지만 추가 오버헤드를 방지합니다.

그것은 성능에 관한 것입니다. 그렇죠?:)

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

게시 된 솔루션이 정확하지 않다고 생각합니다.나는 그것이 다음과 같아야 한다고 믿는다:


$.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"); 
        });

<>가 어떻게든 삭제되었습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top