انتخاب عناصر بر اساس محتوای درون
مسئله
ما نیاز داریم تا یک عنصر را بر اساس آنچه در درون آن است انتخاب کنیم.
راه حل
برای انجام این کار به دو روش می توانیم عمل کنیم: محتوای متنی عنصر(text contents) و عناصر درون عنصر(element contents). برای پیدا کردن محتوای متنی عنصر، می توانیم از فیلتر :contains() استفاده کنیم:
<!-- HTML -->
<span>Hello Bob!</span>
// هسند را انتخاب می کند Bob هایی که حاوی span تمام
jQuery('span:contains("Bob")');
توجه کنید که فیلتر مذکور به حروف بزرگ و کوچک حساس است، بنابراین اگر ما به جای Bob عبارت bob را در این سلکتور قرار دهیم هیچ چیزی پیدا نخواهیم کرد. همچنین در تمام موقعیت ها، استفاده از کوتیشن ها ضروری نیست، اما خوب است که ما آنها را مورد استفاده قرار دهیم به خصوص در مواقعی که لازم است؛ مثلا وقتی که می خواهیم از پرانتزها استفاده کنیم.
برای بررسی عناصر تودرتو می توانیم از فیلتر has() استفاده کنیم. ما می توانیم در درون فیلتر مذکور از هر سلکتور معتبری استفاده کنیم:
jQuery('div:has(p a)');
این سلکتور، تمام عناصر <div> که حاوی عنصر <p> هستند که در درون آنها عناصر <a> وجود دارند را انتخاب می کند.
توضیحات
فیلتر contains() ممکن است تمام نیازهای شما را برطرف نکند. ممکن است ما به کنترل بیشتری بر روی متنی که مجاز است و متنی که مجاز نیست داشته باشیم. اگر به کنترل بیشتری بر روی متن نیاز دارید، توصیه می کنیم که از عبارت های منظم(regular expression) بر روی متن عنصر مورد نظر استفاده کنید؛ مانند زیر:
jQuery('p').filter(function(){
return /(^|\s)(apple|orange|lemon)(\s|$)/.test(jQuery(this).text());
});
کد بالا، تمام پاراگراف هایی که حاوی کلمه ی apple و orange یا lemon هستند را انتخاب می کند. برای مطالعه ی بیشتر در مورد متد filter() در جی کوئری، می توانید به بخش 2.10 مراجعه کنید.
{module کمک نقدی به نویسنده}
- بازدید: 464
1. سعی کنید نظرات شما مرتبط با مقاله ی مورد نظر باشد، در غیر این صورت پاسخ داده نخواهد شد.
2. سوالات خود را به صورت کوتاه بیان کنید و از پرسیدن چند سوال به طور همزمان خودداری کنید.
3. سوال خود را به طور واضح بیان کنید و از کلمات مبهم استفاده نکنید.