اختر الأخوة السابق نطة في مسج؟
-
06-07-2019 - |
سؤال
وأنا أحاول لاقامة بلدي مسج محدد ولكن لست متأكدا بالضبط كيف أحتاج لكتابة ذلك.
ولقد حصلت على قائمة غير مرتبة ويبدو أن شيئا من هذا القبيل:
<ul>
<li>something</li>
<li>something</li>
<li>something</li>
<li>something</li>
<li class="last">something</li>
</ul>
والآن أنا أعرف ما إذا كنت تريد تحديد آخر طفل يمكنني القيام بذلك عن طريق استخدام إما "المجاهدين li.last" أو "ul.li:last" ولكن أقول إذا أردت الثانية من الماضي، أو ثلث، أو 20 ؟ الآن أود أن تفعل ذلك؟
المحلول
واستخدام eq
:
$('ul li').eq(X);
وأين X هو مؤشر المستندة إلى 0 من أي عنصر تريد. هل يمكن أيضا استخدام شكل محدد :
$('ul li:eq(X)');
ويمكن أيضا تحقيق نتيجة مماثلة باستخدام nth-child
:
$('ul li:nth-child(X)');
وثائق لديه هذا القول عن الفرق بين nth-child
وeq
:
وعلى الرغم: مكافئ (رقم قياسي) مباريات فقط على عنصر واحد، وهذا يتطابق مع أكثر من واحد: واحد لكل من الوالدين مع مؤشر. متعددة لكل من الوالدين مع حتى، ونيف، أو المعادلة. وفهرستها واحدة الفهرس المحدد، على النقيض من: مكافئ () الذي يبدأ في صفر
اقتباس فقرة> وذلك من خلال القيام $('ul li').eq(19);
سوف تحصل على 20 واحد عنصر الاستعلام يقابل (حتى إذا كان هناك في وثيقة قائمة أكثر من ذلك لن تحصل على "جميع الأطفال ال19"، في حين $('ul li:nth-child(20)');
سوف تحصل على 20 فرد يقابل عنصر قائمة كل <ul>
في الوثيقة.
تعديل : ل
لفعل شيء من هذا القبيل "الثانية إلى آخر"، والطريقة عاقل للقيام بذلك سيكون مثل:
var $ul = $('#mylist > li');
var $el = $ul.eq($ul.length-2);
ولكن ربما يجب عليك القيام فحص للتأكد من طول 2 ليس أقل من 0.
نصائح أخرى
هل تريد 3 من آخر؟
var $ul = $("ul li");
$ul.find(":eq(" + Math.max(0, $ul.length - 3) + ")");
وشرح سريع: طول $ المجاهدين (والذي هو كائن مسج) هو كيف تم العثور على العديد من لى. بحيث يمكنك استخدام ذلك جنبا إلى جنب مع ": مكافئ (ن)". محدد للحصول لى في مؤشر المطلوبة
واعتدت Math.max في حالة كانت قائمة قصيرة جدا (أقل من 3 لى).
وهذا سيعمل أيضا، ولكن من الواضح انها ليست أفضل طريقة:
var $ul = $("ul li:last").prev().prev();
لالثالث والعشرين، يمكنك أن تفعل ul li:eq(3)
وul li:eq(20)
. لثاني إلى آخر، قد تكون قادرة على القيام بشيء ما مع nth-child
الصورة الخيار حجة equation
، على الرغم من أنني لست متأكدا.
alert($('ul li').eq(3).text());
وهذا سوف ينبه نص الثالث عنصر القائمة.
وأضاف الفريق مسج هذه الميزة في الإصدار 1.9
ويمكن أن تقرأ عن ذلك في http://api.jquery.com/nth -last-الطفل محدد /