سؤال

أنا لا يمكن أن يبدو لمعرفة طريقة جيدة للقيام بذلك ، ولكن يبدو أن ذلك يجب أن تكون بسيطة.لدي أحد العناصر التي أريد أن إلحاق div.ثم لدي عنصر آخر أريد أن استنساخ ويشق إلى أن متوسط div.هذا ما كنت أتمنى القيام به:

$("#somediv > ul").after("<div id='xxx'></div>").append($("#someotherdiv").clone());

هذا يبدو أن يكون قريبا, ولكن ليس تماما هناك.المشكلة مع ذلك هو أن "إلحاق" يبدو أن تعمل على الأصل "#somediv > ul" محدد.هذا النوع من المنطقي ، ولكن ليس هذا ما أردت.كيف يمكنني الأكثر كفاءة تحديد وسيطة div أن أضفت مع "بعد" و وضع "#someotherdiv" في ذلك ؟

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

المحلول

تذهب بطريقة أخرى و استخدام insertAfter().

$("<div id='xxx'></div>")
    .append($("#someotherdiv").clone())
    .insertAfter("#somediv > ul")

محاولة إضافة الخاصة بك ولدت دوم العقد إلى وثيقة إلا بعد الانتهاء من العمل الخاص بك.

بمجرد العقد إضافة إلى عرض الوثيقة المتصفح يبدأ الاستماع إلى أي تغيير لتحديث العرض.القيام بجميع الأعمال قبل أن يضيف العقد إلى عرض الوثيقة تحسين أداء المتصفح.

نصائح أخرى

استخدام insertAfter():

$("<div id='xxx'></div>").insertAfter("#somediv > ul").append($("#someotherdiv").clone())

كيف يمكنني الأكثر كفاءة تحديد وسيطة div أن أضفت مع "بعد" و وضع "#someotherdiv" في ذلك ؟

@فنسنت الحل هو على الارجح أسرع طريقة للحصول على نفس النتيجة.ولكن إذا كان لسبب ما كنت بحاجة إلى إضافة div مع after() ثم تحتاج إلى تحديد ذلك و تعمل على ذلك يمكنك استخدام

.nextAll( [expr] )

Find all sibling elements after the current element.
Use an optional expression to filter the matched set.

لذلك شبيبة يصبح:

$("#somediv > ul")
    .after("<div id='xxx'></div>")
    .nextAll('#xxx')
    .append($("#someotherdiv").clone());
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top