jquery avend
-
05-09-2019 - |
سؤال
أحصل على بيانات من قاعدة بيانات من خلال AJAX وعلامات إلحية على عبارة SELECT. يعمل الكود التالي في فايرفوكس، ولكن جزئيا فقط في IE. المشكلة في IE هي أن تنشئ عناصر الخيار في القائمة المنسدلة، ولكن قيمة السمة "النص" فارغة (تظهر القائمة المنسدلة مع 30 صفوف فارغة! ومع ذلك، يتم تعيين قيمة سمة "القيمة" بشكل صحيح (وهو مفتاح HTE الأساسي من قاعدة البيانات الخاصة بي). هل هناك حقل مختلف أحتاج إلى تعيين في أي غير "النص"؟ النص الغامق في كود تي أدناه هو المكان الذي أعتقد أن المشكلة تكمن. راجع للشغل، القيمة ليست فارغة، وقد حاولت وضعها سلسلة حرفية في مكانها وما زالت فارغة في 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 () - في حين أن مسج لن يرمي أي أخطاء وسوف تتعامل معها، فسوف تتجنب النفقات العامة الإضافية.
كل شيء عن الأداء، أليس كذلك؟ :)
$.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");
});
تم إسقاط <> في بطريقة أو بأخرى.