سؤال

هل من الممارسات الجيدة إرفاق سمة غير موجودة إلى عنصر هتمل من أجل استخدامها في مسج.على سبيل المثال

<input type="text" valrule="someregexstring" />

ثم ببساطة استخدام مسج لتحديد كافة العناصر التي تحتوي على سمة تسمى فالرول وتحليل سلسلة التعبير العادي.

هل هذا 'لا تذهب' بقدر ما تذهب معايير البرمجة وأفضل الممارسات?

هل كانت مفيدة؟

المحلول

يجب عليك استخدام البادئة data-<myAttribute>.وهو مدعوم من قبل هتمل 5 ، المتصفحات الأخرى سوف تجاهله ويمكنك الوصول إليه بسهولة مع مسج باستخدام .data() الطريقة.

<input  id="myInput" type="text" data-MySuperMassiveAttribute="Awesome"/>

ويمكنك استرداد تلك المعلومات مثل ذلك :

var howAmI = $('#myInput').data('MySuperMassiveAttribute');
alert(howAmI); // now everybody knows how awesome you are ;-)

نصائح أخرى

استخدم بيانات HTML5 - بادئة لسمة جديدة مثل هذا:

giveacodicetagpre.

لها HTML 5 صالح ..

http://ejohn.org/blog/html-5-Data-Attributes/

يمكنك بالتأكيد.على الرغم من أن هتمل5 قدم ما يسمى البيانات- السمات ، مما يسمح بتعيين سمات غير قياسية للعناصر بطريقة قياسية.

يمكنك ببساطة بادئة أسماء السمات مع data-

<input type="text" data-valrule="someregexstring" />

على الرغم من أن هذا هو عرض في هتمل5 ، لا يزال بإمكانك استخدامه مع وثائق هتمل4.


باستخدام مسج (1.4.3+) ، و البيانات- يمكن الوصول إلى السمات باستخدام .البيانات() - أو عبر .عطار().

أنا شخصيا لن أفعل ذلك.تتجاهل بعض المتصفحات السمات" غير الموجودة " عند تحليل هتمل ، وبالتالي لن يتم حفظ هذه السمات في دوم صفحة المتصفح.عندما يتم تنفيذ محددات مسج ، فإنها قد لا تجد هذه السمة.

إذا كنت مضمونة لتشغيل في المتصفحات المتوافقة مع هتمل5 ، ثم يمكنك استخدام هتمل5 data- بادئة لسماتك ، على سبيل المثال.

<input type="text" data-valrule="someregexstring" />

ولكن هذا لا يزال قد لا تعمل إذا قمت بتشغيل في المتصفحات القديمة.على سبيل المثال ، اتضح أن ما يقرب من نصف عملائنا يستخدمون إي 7 مع عدم وجود خطط للترقية (تتحرك مع سرعة الحكومة).

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