سؤال

وأنا أحاول لاقامة بلدي مسج محدد ولكن لست متأكدا بالضبط كيف أحتاج لكتابة ذلك.

ولقد حصلت على قائمة غير مرتبة ويبدو أن شيئا من هذا القبيل:

<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-الطفل محدد /

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