Range: phương thức compareBoundaryPoints()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Phương thức compareBoundaryPoints() của giao diện Range so sánh các điểm biên của Range với các điểm biên của một range khác.
Cú pháp
compareBoundaryPoints(how, otherRange)
Tham số
how-
Một hằng số mô tả cách so sánh:
Range.END_TO_ENDso sánh điểm biên cuối củaRangenày với điểm biên cuối củaotherRange.Range.END_TO_STARTso sánh điểm biên đầu củaRangenày với điểm biên cuối củaotherRange.Range.START_TO_ENDso sánh điểm biên cuối củaRangenày với điểm biên đầu củaotherRange.Range.START_TO_STARTso sánh điểm biên đầu củaRangenày với điểm biên đầu củaotherRange.
otherRange-
Một
Rangeđể so sánh điểm biên với range này.
Giá trị trả về
Một số.
-1nếu điểm biên được chỉ định củaRangenày đứng trước điểm biên được chỉ định củaotherRange.0nếu điểm biên được chỉ định củaRangenày giống với điểm biên được chỉ định củaotherRange.1nếu điểm biên được chỉ định củaRangenày đứng sau điểm biên được chỉ định củaotherRange.
API này nhất quán với quy ước chung rằng khi so sánh A với B, một số âm nghĩa là A đứng trước B và ngược lại. Các range được so sánh theo hướng từ this tới other. Tuy nhiên, thứ tự biên trong tham số how được chỉ định ngược lại: END_TO_START so sánh đầu của this với cuối của other.
Ngoại lệ
NotSupportedErrorDOMException-
Được ném ra nếu giá trị của tham số
howkhông hợp lệ.
Ví dụ
Dưới đây, chúng ta tạo hai range trên cùng một nút văn bản và so sánh các điểm biên khác nhau của chúng.
const text = new Text("0123456789");
const thisRange = new Range();
thisRange.setStart(text, 1);
thisRange.setEnd(text, 6);
const otherRange = new Range();
otherRange.setStart(text, 1);
otherRange.setEnd(text, 4);
// Các range trông như sau:
// thisRange start v---------v thisRange end
// 0 1 2 3 4 5 6 7 8 9
// otherRange start ^-----^ otherRange end
// this start *giống* other start
thisRange.compareBoundaryPoints(Range.START_TO_START, otherRange); // 0
// this end *sau* other start
thisRange.compareBoundaryPoints(Range.START_TO_END, otherRange); // 1
// this start *trước* other end
thisRange.compareBoundaryPoints(Range.END_TO_START, otherRange); // -1
// this end *sau* other end
thisRange.compareBoundaryPoints(Range.END_TO_END, otherRange); // 1
Thông số kỹ thuật
| Specification |
|---|
| DOM> # dom-range-compareboundarypoints> |