المحدد :text
في jQuery
المحدد :text
الوصف
يحدِّد جميع عناصر الإدخال <input>
ذات النوع text.
jQuery( ":text" )
أُضيف مع الإصدار: 1.0.
يسمح لنا المحدِّد $( ":text" )
بتحديد جميع عناصر <input type="text">
. يفضَّل أن يُسبق هذا المحدِّد، كما في محدِّدات الصنف الزائف (pseudo-class selectors) التي تبدأ بنقطتين ":
"، باسم وسمٍ (tag) أو محدِّد آخر وإلا سيُسبق بالمحدِّد العام "*
" بشكل ضمني. بعبارة أخرى، استعمال المحدِّد بالشكل $( ":text" )
يكافئ تمامًا $( "*:text" )
، لذا يجب استعمال $( "input:text" )
مثلًا عوضًا عن ذلك.
ملاحظة: بدءًا من الإصدار jQuery 1.5.2، يحدِّد المحدِّد :text
العناصر <input>
التي لم تعيَّن قيمة الخاصِّيَّة type
فيها صراحةً ولكن ستُضبَط القيمة type="text"
فيها ضمنيًا.
يظهر الفارق بين سلوك المحدِّد بالشكل $( ":text" )
والشكل $( "[type=text]" )
جليًّا في المثال التالي:
$( "<input>" ).is( "[type=text]" ); // false
$( "<input>" ).is( ":text" ); // true
ملاحظات إضافية
لمَّا كان المحدِّد :text
هو ملحق في مكتبة jQuery وليس جزءًا من مواصفة CSS، فإنَّ الاستعلامات التي تستعمل :text
لا يمكنها الاستفادة من سرعة الأداء الذي يوفره تابع DOM الأصلي querySelectorAll()
. للحصول على أداء أفضل في المتصفحات الحديثة، استعمل [type="text"]
.
أمثلة
إيجاد جميع العناصر <input>
التي من النوع text:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>text مثالٌ عن استعمال التابع</title>
<style>
textarea {
height: 25px;
}
</style>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<form>
<input type="button" value="Input Button">
<input type="checkbox">
<input type="file">
<input type="hidden">
<input type="image">
<input type="password">
<input type="radio">
<input type="reset">
<input type="submit">
<input type="text">
<select>
<option>خيار</option>
</select>
<textarea></textarea>
<button>زر</button>
</form>
<div></div>
<script>
var input = $( "form input:text" ).css({
background: "yellow",
border: "3px red solid"
});
$( "div" )
.text( "عدد العناصر التي عثر عليها من هذا النوع هي " + input.length + "." )
.css( "color", "red" );
// منع إرسال النموذج
$( "form" ).submit(function( event ) {
event.preventDefault();
});
</script>
</body>
</html>