سؤال

لقد قمت بإنشاء مثال قائم بذاته لمعرفة سبب عمل هذا فقط في Firefox:

var ul = jQuery('<ul></ul>');

jQuery(selector).children().each(function() {
   var li = jQuery('<li></li>');
   var label = '<label for="' + this.id + '">' + this.name + '</label>';
   li.append(label);
   li.append(this);
   ul.append(li);
});

يفشل أي متصفح webkit أو حتى IE في هذا السطر:

li.append(this);

هذا هو HTMLInputElement.أيه أفكار؟

شكرا يا بيت

هل كانت مفيدة؟

المحلول

المشكلة هي أن "هذه" هي عقدة DOM موجودة بالفعل في مكان ما.لا يمكنك نقل عقد DOM الموجودة بالفعل في مكان ما دون إزالتها أو نسخها أولاً.

أذا أردت:

  • تحريكه، ما عليك القيام به

    li.append ($(هذا).إزالة())

  • قم بنسخه، ستفعل

    li.append ($(هذا).استنساخ (صحيح))

في الواقع، أنا في حيرة من أمري، أنه ينبغي أن يعمل في FF.إذا حدث ذلك، فهذا خطأ في FF.

هتافات،

نصائح أخرى

ولعل هذا هو مشكلة مع العنصر الذي تحاول لتحديد الأطفال من، أو مشكلة مع إصدار مسج تستخدمه.

وأستخدمه 1.3.2 واستخدام التعليمات البرمجية (نسخ و لصق) I يمكن تشغيلها بنجاح هذا في FF 3، IE 8، وكروم.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top