Nếu tôi có một số HTML trông như thế này:Remove thẻ xung quanh một nút văn bản sử dụng javascript
<div id="text">
This is some text that is being written <span class="highlight">with
a highlighted section</span> and some text following it.
</div>
Và tôi muốn loại bỏ các "nhịp cầu" giữ nút văn bản trong thời hạn, làm thế nào tôi sẽ đi về làm điều đó ? Tôi đã thử sử dụng jQuery để thực hiện các thao tác sau:
wrap = $('.highlight');
wrap.children().insertBefore(wrap);
wrap.remove();
Nhưng điều đó không có tác dụng. Tôi đoán vì trẻ em trả về bộ trống vì chỉ có nút văn bản trong đó. Vì vậy, tất cả những gì xảy ra là khoảng và nội dung của nó được loại bỏ.
Tôi cũng mở để lựa chọn thay thế cho cách tiếp cận của mình tại đây. Điều đang xảy ra là mã của tôi thực sự tạo ra khoảng thời gian đó khi người dùng chọn một khối văn bản. Nó kết thúc tốt đẹp văn bản được chọn trong một khoảng để phân biệt bằng mắt nó. Tôi cần phải loại bỏ các span sau đó mặc dù vì một số quirks với cách đối tượng phạm vi của mozilla hoạt động.
EDIT: Tôi không muốn thay thế toàn bộ nội dung của '#text' bằng cách này vì nó có thể rất lớn.
Ah, biểu thức thông thường. Tôi chưa bao giờ gặp một thứ khiến não tôi không khóc. Nhưng đây là một cách tiếp cận tốt. Chỉ cần thay thế html bên trong bằng kết quả của một regex. Tôi thích nó. – Karim
Tốt nhất là không bao giờ sử dụng regex cho (X) (HT) ML vì đây không phải là ngôn ngữ thông thường. tuy nhiên trong trường hợp này, điều trên sẽ hoạt động. –
-1 Điều này loại bỏ các thẻ, nhưng không theo cách OP được chỉ định. – Imagist