Đối với trong phạm vi nodejs
Trong chương này, chúng ta sẽ đề cập đến lựa chọn trong tài liệu, cũng như lựa chọn trong các trường biểu mẫu, chẳng hạn như 0 Show
JavaScript có thể truy cập một lựa chọn hiện có, chọn/bỏ chọn toàn bộ hoặc một phần các nút DOM, xóa nội dung đã chọn khỏi tài liệu, gói nội dung đó vào một thẻ, v.v. Bạn có thể tìm thấy một số công thức cho các nhiệm vụ phổ biến ở cuối chương, trong phần “Tóm tắt”. Có thể điều đó đáp ứng nhu cầu hiện tại của bạn, nhưng bạn sẽ nhận được nhiều hơn thế nếu bạn đọc toàn bộ văn bản Các đối tượng 1 và 2 cơ bản rất dễ nắm bắt và sau đó bạn sẽ không cần công thức nào để khiến chúng làm những gì bạn muốnPhạm viKhái niệm cơ bản của lựa chọn là Phạm vi, về cơ bản là một cặp “điểm biên”. phạm vi bắt đầu và phạm vi kết thúc Đối tượng 1 được tạo không có tham số
Sau đó, chúng ta có thể đặt ranh giới lựa chọn bằng cách sử dụng 4 và 5Như bạn có thể đoán, hơn nữa chúng ta sẽ sử dụng các đối tượng 1 để lựa chọn, nhưng trước tiên hãy tạo một vài đối tượng như vậyChọn văn bản một phầnĐiều thú vị là đối số đầu tiên 7 trong cả hai phương thức có thể là nút văn bản hoặc nút phần tử và ý nghĩa của đối số thứ hai phụ thuộc vào điều đóNếu 7 là một nút văn bản, thì 9 phải là vị trí trong văn bản của nóVí dụ, với phần tử 10, chúng ta có thể tạo dãy chứa các chữ cái “ll” như sau 2Ở đây, chúng tôi lấy con đầu tiên của 11 (đó là nút văn bản) và chỉ định vị trí văn bản bên trong nóChọn các nút phần tửNgoài ra, nếu 7 là một nút phần tử, thì 9 phải là số conĐiều đó rất hữu ích để tạo các phạm vi chứa toàn bộ các nút, không dừng ở đâu đó bên trong văn bản của chúng Ví dụ: chúng tôi có một đoạn tài liệu phức tạp hơn
Đây là cấu trúc DOM của nó với cả nút phần tử và nút văn bản Hãy tạo một phạm vi cho 14Như chúng ta có thể thấy, cụm từ này bao gồm chính xác hai con của 11, với chỉ mục là 16 và 17
Đây là bản demo. Nếu bạn chạy nó, bạn có thể thấy văn bản được chọn 1Đây là một giá thử nghiệm linh hoạt hơn, nơi bạn có thể đặt số bắt đầu/kết thúc phạm vi và khám phá các biến thể khác 4E. g. chọn trong cùng một 11 từ offset 17 đến 49 cho chúng ta phạm vi 50Các nút bắt đầu và kết thúc có thể khác nhau Chúng tôi không phải sử dụng cùng một nút trong 51 và 52. Một phạm vi có thể trải rộng trên nhiều nút không liên quan. Điều quan trọng duy nhất là kết thúc sau phần bắt đầu trong tài liệuChọn một mảnh lớn hơnHãy tạo một vùng chọn lớn hơn trong ví dụ của chúng ta, như thế này Chúng tôi đã biết làm thế nào để làm điều đó. Chúng ta chỉ cần đặt phần đầu và phần cuối làm phần bù tương đối trong các nút văn bản Chúng ta cần phải tạo ra một phạm vi, mà
5Như bạn có thể thấy, khá dễ dàng để tạo ra một loạt bất cứ thứ gì chúng ta muốn Nếu chúng tôi muốn lấy toàn bộ các nút, chúng tôi có thể chuyển các phần tử trong 55. Nếu không, chúng ta có thể làm việc ở cấp độ văn bảnThuộc tính phạm viĐối tượng phạm vi mà chúng tôi đã tạo trong ví dụ trên có các thuộc tính sau
phương pháp lựa chọn phạm viCó nhiều phương pháp thuận tiện để thao tác phạm vi Chúng tôi đã thấy 51 và 52, đây là các phương pháp tương tự khácĐặt phạm vi bắt đầu
Đặt phạm vi kết thúc (phương pháp tương tự)
Về mặt kỹ thuật, 55 có thể làm bất cứ điều gì, nhưng nhiều phương pháp hơn sẽ mang lại nhiều tiện ích hơnTrong tất cả các phương thức này, 7 có thể vừa là nút văn bản hoặc phần tử. đối với các nút văn bản, 9 bỏ qua nhiều ký tự đó, trong khi đối với các nút phần tử, nhiều nút conThậm chí nhiều phương pháp hơn để tạo phạm vi
Phương pháp chỉnh sửa phạm viKhi phạm vi được tạo, chúng ta có thể thao tác nội dung của nó bằng các phương thức này
Với những phương pháp này, về cơ bản chúng ta có thể làm bất cứ điều gì với các nút đã chọn Đây là giá đỡ thử nghiệm để xem chúng hoạt động 6Cũng tồn tại các phương pháp để so sánh các phạm vi, nhưng chúng hiếm khi được sử dụng. Khi bạn cần chúng, vui lòng tham khảo thông số kỹ thuật hoặc hướng dẫn sử dụng MDN Lựa chọn 1 là một đối tượng chung để quản lý phạm vi lựa chọn. Mặc dù, tạo một 1 không có nghĩa là chúng ta thấy một lựa chọn trên màn hìnhChúng tôi có thể tạo các đối tượng 1, chuyển chúng xung quanh – chúng không tự chọn bất kỳ thứ gì một cách trực quanViệc lựa chọn tài liệu được đại diện bởi đối tượng 2, có thể được lấy dưới dạng 207 hoặc 208. Một lựa chọn có thể bao gồm 0 hoặc nhiều phạm vi. Ít nhất, đặc tả API Lựa chọn nói như vậy. Tuy nhiên, trên thực tế, chỉ Firefox mới cho phép chọn nhiều phạm vi trong tài liệu bằng cách sử dụng Ctrl + click (Cmd +< . click for Mac).Đây là ảnh chụp màn hình của vùng chọn có 3 phạm vi, được tạo trên Firefox Các trình duyệt khác hỗ trợ tối đa 1 phạm vi. Như chúng ta sẽ thấy, một số phương thức của 2 ngụ ý rằng có thể có nhiều phạm vi, nhưng một lần nữa, trong tất cả các trình duyệt ngoại trừ Firefox, chỉ có tối đa 1 phạm vi.Đây là một bản trình diễn nhỏ hiển thị lựa chọn hiện tại (chọn thứ gì đó và nhấp) dưới dạng văn bản cảnh báo (tài liệu. getSelection()) Thuộc tính lựa chọnNhư đã nói, về lý thuyết, một vùng chọn có thể chứa nhiều phạm vi. Chúng ta có thể lấy các đối tượng phạm vi này bằng phương thức
Ngoài ra, tồn tại các thuộc tính thường mang lại sự thuận tiện tốt hơn Tương tự như một phạm vi, một đối tượng lựa chọn có phần đầu, được gọi là "neo" và phần cuối, được gọi là "tiêu điểm" Các thuộc tính lựa chọn chính là
Lựa chọn kết thúc/bắt đầu so với Phạm vi Có một sự khác biệt quan trọng của điểm neo/tiêu điểm lựa chọn so với điểm bắt đầu/kết thúc của 1Như chúng ta đã biết, đối tượng 1 luôn có điểm bắt đầu trước điểm kết thúcĐối với các lựa chọn, không phải lúc nào cũng vậy Chọn thứ gì đó bằng chuột có thể được thực hiện theo cả hai hướng. “từ trái sang phải” hoặc “từ phải sang trái” Nói cách khác, khi nút chuột được nhấn và sau đó nó di chuyển về phía trước trong tài liệu, thì phần cuối (tiêu điểm) của nó sẽ ở sau phần đầu (điểm neo) E. g. nếu người dùng bắt đầu chọn bằng chuột và chuyển từ “Ví dụ” sang “in nghiêng” …Nhưng cùng một lựa chọn có thể được thực hiện ngược lại. bắt đầu từ “in nghiêng” đến “Ví dụ” (hướng ngược), sau đó phần cuối của nó (tiêu điểm) sẽ ở trước phần bắt đầu (neo) sự kiện tuyển chọnCó các sự kiện để theo dõi lựa chọn
Demo theo dõi lựa chọnĐây là một bản demo nhỏ. Nó theo dõi lựa chọn hiện tại trên 228 và hiển thị ranh giới của nó 7Bản trình diễn sao chép lựa chọnCó hai cách để sao chép nội dung đã chọn
Đây là bản demo sao chép nội dung đã chọn dưới dạng văn bản và dưới dạng các nút DOM 7phương pháp lựa chọnChúng ta có thể làm việc với vùng chọn bằng cách thêm/xóa phạm vi
Ngoài ra còn có các phương pháp tiện lợi để thao tác trực tiếp với phạm vi lựa chọn mà không cần các lệnh gọi trung gian 1
Đối với hầu hết các tác vụ, các phương thức này đều ổn, không cần truy cập đối tượng 1 bên dướiVí dụ chọn toàn bộ nội dung của đoạn 11 6Điều tương tự khi sử dụng phạm vi 20Để chọn thứ gì đó, trước tiên hãy xóa lựa chọn hiện tại Nếu một lựa chọn tài liệu đã tồn tại, hãy làm trống nó trước với 242. Và sau đó thêm phạm vi. Mặt khác, tất cả các trình duyệt ngoại trừ Firefox đều bỏ qua các phạm vi mớiNgoại lệ là một số phương pháp lựa chọn, thay thế lựa chọn hiện có, chẳng hạn như 268Lựa chọn trong điều khiển biểu mẫuCác phần tử biểu mẫu, chẳng hạn như 269 và 270 cung cấp API đặc biệt để lựa chọn, không có đối tượng 2 hoặc 1. Vì giá trị đầu vào là một văn bản thuần túy, không phải HTML, nên không cần các đối tượng như vậy, mọi thứ đơn giản hơn nhiềuTính chất
Sự kiện
phương pháp
Bây giờ hãy xem các phương pháp này hoạt động Ví dụ. lựa chọn theo dõiVí dụ: mã này sử dụng sự kiện 291 để theo dõi lựa chọn 21Xin lưu ý
Ví dụ. di chuyển con trỏChúng ta có thể thay đổi 295 và 296, điều này đặt vùng chọnMột trường hợp cạnh quan trọng là khi 295 và 296 bằng nhau. Sau đó, nó chính xác là vị trí con trỏ. Hoặc, để viết lại, khi không có gì được chọn, lựa chọn được thu gọn tại vị trí con trỏVì vậy, bằng cách đặt 295 và 296 thành cùng một giá trị, chúng tôi di chuyển con trỏVí dụ 22Ví dụ. sửa đổi lựa chọnĐể sửa đổi nội dung của vùng chọn, chúng ta có thể sử dụng phương thức 01. Tất nhiên, chúng ta có thể đọc 02 và với kiến thức về lựa chọn, thay đổi chuỗi con tương ứng của 03, nhưng 04 mạnh hơn và thường thuận tiện hơnĐó là một phương pháp hơi phức tạp. Ở dạng một đối số đơn giản nhất, nó thay thế phạm vi người dùng đã chọn và xóa lựa chọn Ví dụ: ở đây, lựa chọn của người dùng sẽ được bao bọc bởi 05 23Với nhiều đối số hơn, chúng ta có thể đặt phạm vi 281 và 282Trong ví dụ này, chúng tôi tìm thấy 08 trong văn bản đầu vào, thay thế nó và giữ lựa chọn thay thế 24Ví dụ. chèn vào con trỏNếu không có gì được chọn hoặc chúng tôi sử dụng 281 và 282 bằng nhau trong 04, thì văn bản mới chỉ được chèn vào, không có gì bị xóaChúng tôi cũng có thể chèn một cái gì đó "tại con trỏ" bằng cách sử dụng 04Đây là nút chèn 13 vào vị trí con trỏ và đặt con trỏ ngay sau nó. Nếu lựa chọn không trống, thì nó sẽ được thay thế (chúng ta có thể phát hiện ra nó bằng cách so sánh 14 và thay vào đó làm một việc khác) 25Làm cho không thể chọnĐể làm cho một cái gì đó không thể chọn, có ba cách
Người giới thiệu
Tóm lượcChúng tôi đã đề cập đến hai API khác nhau cho các lựa chọn
API thứ hai rất đơn giản vì nó hoạt động với văn bản Các công thức nấu ăn được sử dụng nhiều nhất có lẽ là
Và cuối cùng, về con trỏ. Vị trí con trỏ trong các thành phần có thể chỉnh sửa, như 31 luôn ở đầu hoặc cuối vùng chọn. Chúng ta có thể sử dụng nó để lấy vị trí con trỏ hoặc di chuyển con trỏ bằng cách đặt 32 và 33
Công dụng của hàm range() trong để làm gì?Hàm range() trả về một dãy số, bắt đầu từ 0 theo mặc định và tăng dần 1 (theo mặc định) và dừng trước một số đã chỉ định.
Làm cách nào để lặp một phạm vi trong js?Một cách để lặp qua phạm vi ngày bằng JavaScript là sử dụng vòng lặp while . Chúng ta có thể tạo các biến cho ngày bắt đầu và ngày kết thúc. Sau đó, chúng tôi có thể tăng ngày bắt đầu cho đến khi đến ngày kết thúc. Chúng ta có các biến bắt đầu và kết thúc với ngày bắt đầu và ngày kết thúc tương ứng.
=> trong JS nghĩa là gì?Đó là một tính năng mới được giới thiệu trong ES6 và được gọi là hàm mũi tên . Phần bên trái biểu thị đầu vào của một chức năng và phần bên phải là đầu ra của chức năng đó.
3 đối số cho hàm phạm vi là gì?Hàm range() của Python nhận ba đối số. . số bắt đầu (tùy chọn). Dãy số nguyên được trả về bắt đầu từ số nguyên này. . số dừng. Dãy số nguyên mà range() trả về kết thúc trước số nguyên này. . stepValue (tùy chọn). Một giá trị số nguyên cho biết sự khác biệt giữa mỗi số nguyên trong chuỗi |