الفرق بين المراجعتين لصفحة: «jQuery/eq selector»
Khaled-yassin (نقاش | مساهمات) لا ملخص تعديل |
Khaled-yassin (نقاش | مساهمات) لا ملخص تعديل |
||
سطر 49: | سطر 49: | ||
</body> | </body> | ||
</html> | </html> | ||
</syntaxhighlight>تطبيق ثلاثة أنماط مختلفة لسرد العناصر لإثبات أنَّ <code>:eq()</code> مُصمم لتحديد عنصر واحد، بينما التوابع <code>:nth-child()</code> أو <code>:eq()</code> داخل حلقات مثل <code>[[jQuery/each|.each()]]</code> يمكنها تحديد عناصر متعددة:<syntaxhighlight lang="html | </syntaxhighlight>تطبيق ثلاثة أنماط مختلفة لسرد العناصر لإثبات أنَّ <code>:eq()</code> مُصمم لتحديد عنصر واحد، بينما التوابع <code>:nth-child()</code> أو <code>:eq()</code> داخل حلقات مثل <code>[[jQuery/each|.each()]]</code> يمكنها تحديد عناصر متعددة:<syntaxhighlight lang="html"> | ||
<!doctype html> | <!doctype html> | ||
<html lang="en"> | <html lang="en"> | ||
<head> | <head> | ||
<meta charset="utf-8"> | <meta charset="utf-8"> | ||
<title>eq | <title>eq مثال على المحدد</title> | ||
<script src="https://code.jquery.com/jquery-1.10.2.js"></script> | <script src="https://code.jquery.com/jquery-1.10.2.js"></script> | ||
</head> | </head> | ||
سطر 60: | سطر 60: | ||
<ul class="nav"> | <ul class="nav"> | ||
<li> | <li>القائمة 1, البند 1</li> | ||
<li> | <li>القائمة 1, البند 2</li> | ||
<li> | <li>القائمة 1, البند 3</li> | ||
</ul> | </ul> | ||
<ul class="nav"> | <ul class="nav"> | ||
<li> | <li>القائمة 2, البند 1</li> | ||
<li> | <li>القائمة 2, البند 2</li> | ||
<li> | <li>القائمة 2, البند 3</li> | ||
</ul> | </ul> | ||
سطر 91: | سطر 91: | ||
<head> | <head> | ||
<meta charset="utf-8"> | <meta charset="utf-8"> | ||
<title>eq | <title>eq مثال على المحدد</title> | ||
<style> | <style> | ||
.foo { | .foo { | ||
سطر 103: | سطر 103: | ||
<ul class="nav"> | <ul class="nav"> | ||
<li> | <li>القائمة 1, البند 1</li> | ||
<li> | <li>القائمة 1, البند 2</li> | ||
<li> | <li>القائمة 1, البند 3</li> | ||
</ul> | </ul> | ||
<ul class="nav"> | <ul class="nav"> | ||
<li> | <li>القائمة 2, البند 1</li> | ||
<li> | <li>القائمة 2, البند 2</li> | ||
<li> | <li>القائمة 2, البند 3</li> | ||
</ul> | </ul> | ||
المراجعة الحالية بتاريخ 15:12، 5 يونيو 2018
المحدد :eq()
الوصف
يُحدد العنصر الموجود في الفهرس n
داخل المجموعة المتطابقة.
jQuery( ":eq(index)" )
أُضيف مع الإصدار: 1.0.
index
فهرس صفري للعنصر المراد مطابقته.
jQuery( ":eq(-index)" )
أُضيف مع الإصدار: 1.8.
indexFromEnd
فهرس صفري للعنصر المراد مطابقته، معدود تنازليًا من العنصر الأخير.
تقوم المحددات المرتبطة بالفهارس ( :eq()
و :lt()
و :gt()
و :even
و :odd
) بترشيح مجموعة العناصر التي طابقت التعبيرات التي تسبقها. وهي تُضيِّق المجموعة على أساس ترتيب العناصر داخل هذه المجموعة المتطابقة. على سبيل المثال، إذا حُدِدت العناصر أولاً باستخدام مُحدد فئة ( .myclass
) وأُعيدت أربعة عناصر، يتم إعطاء هذه العناصر الفهارس من 0 إلى 3 لأغراض هذه المحددات.
لاحظ أنه نظرًا لأن مصفوفات JavaScript تستخدم الفهرسة الصفرية، فإن هذه المحددات تفعل الأمر نفسه. وهو السبب في تحديد $( ".myclass:eq(1)" )
للعنصر الثاني في المستند مع الفئة myclass
بدلاً من الأول. في المقابل، يستخدم :nth-child(n)
فهرسة أحادية لتتوافق مع مواصفات CSS.
قبل الإصدار jQuery 1.8، لم يكن المحدد :eq(index)
يقبل قيمة سالبة للفهرس index (على الرغم من التابع .eq(index)
يقبلها).
ملاحظات إضافية
لأن :eq()
هو ملحق تابع لمكتبة jQuery وليس جزءًا من مواصفات CSS، فلا يمكن استفادة الاستعلامات باستخدام :eq()
من تحسين الأداء الذي يوفره تابع DOM الأصلي querySelectorAll()
. للحصول على أداء أفضل في المتصفحات الحديثة، استخدم $("your-pure-css-selector").eq(index)
بدلاً من ذلك.
أمثلة
العثور على ثالث عنصر <td>
في الجدول <table>
:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>eq مثال على المحدد</title>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<table border="1">
<tr><td>TD #0</td><td>TD #1</td><td>TD #2</td></tr>
<tr><td>TD #3</td><td>TD #4</td><td>TD #5</td></tr>
<tr><td>TD #6</td><td>TD #7</td><td>TD #8</td></tr>
</table>
<script>
$( "td:eq( 2 )" ).css( "color", "red" );
</script>
</body>
</html>
تطبيق ثلاثة أنماط مختلفة لسرد العناصر لإثبات أنَّ :eq()
مُصمم لتحديد عنصر واحد، بينما التوابع :nth-child()
أو :eq()
داخل حلقات مثل .each()
يمكنها تحديد عناصر متعددة:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>eq مثال على المحدد</title>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<ul class="nav">
<li>القائمة 1, البند 1</li>
<li>القائمة 1, البند 2</li>
<li>القائمة 1, البند 3</li>
</ul>
<ul class="nav">
<li>القائمة 2, البند 1</li>
<li>القائمة 2, البند 2</li>
<li>القائمة 2, البند 3</li>
</ul>
<script>
// تطبيق لون الخلفية الصفراء على <li> واحدة فقط
$( "ul.nav li:eq(1)" ).css( "backgroundColor", "#ff0" );
// تطبيق الخط المائل على نص <li> الثاني داخل كل <ul class = "nav">
$( "ul.nav" ).each(function( index ) {
$( this ).find( "li:eq(1)" ).css( "fontStyle", "italic" );
});
// تطبيق لون النص الأحمر على سليلات <ul class = "nav">
// لكل <li> يكون الابن الثاني من أصله
$( "ul.nav li:nth-child(2)" ).css( "color", "red" );
</script>
</body>
</html>
إضافة فئة إلى العنصر الثاني من القائمة الثانية من خلال استهداف عنصر <li>
قبل الأخير:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>eq مثال على المحدد</title>
<style>
.foo {
color: blue;
background-color: yellow;
}
</style>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<ul class="nav">
<li>القائمة 1, البند 1</li>
<li>القائمة 1, البند 2</li>
<li>القائمة 1, البند 3</li>
</ul>
<ul class="nav">
<li>القائمة 2, البند 1</li>
<li>القائمة 2, البند 2</li>
<li>القائمة 2, البند 3</li>
</ul>
<script>
$( "li:eq(-2)" ).addClass( "foo" )
</script>
</body>
</html>