Document.createNodeIterator()
يُعيد التّابع Document.createNodeIterator()
كائنًا جديدًا من النّوع NodeIterator
.
البنية العامة
var nodeIterator = document.createNodeIterator(root, whatToShow, filter);
المعاملات
root
العقدة الجذر التي سيبدأ منها مرور الكائن NodeIterator
.
whatToShow
قيمة اختياريّةٌ من النّوع unsigned long
تُمثّل قيمة bitmask تُنشأُ عبر دمج الخاصيّات الثّابتة الخاصّة بالكائن NodeFilter
. وهي طريقة جيّدة لترشيح بعض أنواع العقد. القيمة الافتراضيّة هي 0xFFFFFFFF
وتُمثّل الثّابتة SHOW_ALL
.
الثّابتة | القيمة الرّقميّة | الوصف |
---|---|---|
NodeFilter.SHOW_ALL
|
-1 (وهي القيمة القصوى للنّوع unsigned long)
|
اعرض جميع العقد. |
NodeFilter.SHOW_ATTRIBUTE
|
2
|
قيمةٌ مُهملَة تعرض عقد الخصائص من النّوع Attr .
|
NodeFilter.SHOW_CDATA_SECTION
|
8
|
قيمةٌ مُهملَة تعرض العقد من النّوع CDATASection .
|
NodeFilter.SHOW_COMMENT
|
128
|
تعرض العقد من النّوع Comment .
|
NodeFilter.SHOW_DOCUMENT
|
256
|
تعرض العقد من النّوع Document .
|
NodeFilter.SHOW_DOCUMENT_FRAGMENT
|
1024
|
تعرض العقد من النّوع DocumentFragment .
|
NodeFilter.SHOW_DOCUMENT_TYPE
|
512
|
تعرض العقد من النّوع DocumentType .
|
NodeFilter.SHOW_ELEMENT
|
1
|
تعرض العقد من النّوع Element .
|
NodeFilter.SHOW_ENTITY
|
32
|
قيمةٌ مُهملَة تعرض العقد من النّوع Entity .
|
NodeFilter.SHOW_ENTITY_REFERENCE
|
16
|
قيمةٌ مُهملَة تعرض العقد من النّوع EntityReference .
|
NodeFilter.SHOW_NOTATION
|
2048
|
قيمةٌ مُهملَة تعرض العقد من النّوع Notation .
|
NodeFilter.SHOW_PROCESSING_INSTRUCTION
|
64
|
تعرض العقد من النّوع ProcessingInstruction .
|
NodeFilter.SHOW_TEXT
|
4
|
تعرض العقد من النّوع Text .
|
filter
مُعاملٌ اختياريّ يُمثّل كائنًا يُطبِّق الواجهة NodeFilter
؛ يُستدعى التّابع acceptNode()
الخاصّ بهذه الواجهة لكلّ عقدة في الشّجرة الفرعيّة المؤسّسة على الجذر والتي تُقبَل حسب ما حُدِّد من طرف المُعامل whatToShow
ويُحدّد إضافة العقدة إلى قائمة العقد التكراريّة (iterable) من عدمه (يُمكن استعمال دالّة ردّ نداءٍ [callback function] بسيطة كذلك للحصول على نفس النّتيجة). يجب على هذا التّابع أن يُرجع أحد القيم NodeFilter.FILTER_ACCEPT
أو NodeFilter.FILTER_REJECT
أو NodeFilter.FILTER_SKIP
. انظر المثال.
أمثلة
var nodeIterator = document.createNodeIterator(
document.body,
NodeFilter.SHOW_ELEMENT,
function(node) {
return node.nodeName.toLowerCase() === 'p' ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_REJECT;
}
);
var pars = [];
var currentNode;
while (currentNode = nodeIterator.nextNode()) {
pars.push(currentNode);
}
دعم المتصفحات
الميزة | Chrome | Internet Explorer | Firefox | Opera | Safari |
---|---|---|---|---|---|
الدعم الأساسي | 1 | 9 | 3.5 | 9 | 3 |