Jquery 추가 <select>는 IE7에서는 작동하지 않지만 Firefox에서는 작동합니다.
-
05-09-2019 - |
문제
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");
});
<>가 어떻게든 삭제되었습니다.
제휴하지 않습니다 StackOverflow