Hướng dẫn remove text from html element - xóa văn bản khỏi phần tử html

Tôi có:

Here is

Text, that I want to

be removed

Tôi muốn:


Cách dễ nhất để loại bỏ tất cả văn bản, nhưng giữ cấu trúc HTML là gì?

Hướng dẫn remove text from html element - xóa văn bản khỏi phần tử html

Salman a

253K80 Huy hiệu vàng425 Huy hiệu bạc513 Huy hiệu Đồng80 gold badges425 silver badges513 bronze badges

Khi được hỏi ngày 27 tháng 8 năm 2015 lúc 11:11Aug 27, 2015 at 11:11

Hướng dẫn remove text from html element - xóa văn bản khỏi phần tử html

1

Bạn có thể tạo một hàm/plugin sẽ tái phát thông qua các phần tử trong phần tử cấp cao nhất của bạn, xóa bất kỳ nút văn bản nào được tìm thấy:

$.fn.removeText = function(){
  this.each(function(){

     // Get elements contents
     var $cont = $(this).contents();

      // Loop through the contents
      $cont.each(function(){
         var $this = $(this);

          // If it's a text node
          if(this.nodeType == 3){
            $this.remove(); // Remove it 
          } else if(this.nodeType == 1){ // If its an element node
            $this.removeText(); //Recurse
          }
      });
  });
}

$('#toplevel').removeText();

JSfiddle

Reference:

Đã trả lời ngày 27 tháng 8 năm 2015 lúc 11:17Aug 27, 2015 at 11:17

Hướng dẫn remove text from html element - xóa văn bản khỏi phần tử html

GeorgeGeorgeGeorge

Huy hiệu vàng 36K864 Huy hiệu bạc8 gold badges64 silver badges102 bronze badges

Rõ ràng bạn muốn xóa tất cả các nút văn bản khỏi phần tử. Bạn có thể truy cập các nút văn bản bằng hàm


6. Và bạn không cần bất kỳ đệ quy nào. jQuery làm điều đó cho bạn:

$(function() {
  $("#to-clean, #to-clean *")                  // selects the element and all element nodes inside it
    .contents()                                // selects all child nodes including tags, comments and text
    .filter(function() {
      return this.nodeType === Node.TEXT_NODE; // filter text nodes
    }).remove();                               // boom!
});

Here is

Text, that I want to

be removed

Đã trả lời ngày 27 tháng 8 năm 2015 lúc 11:21Aug 27, 2015 at 11:21

Hướng dẫn remove text from html element - xóa văn bản khỏi phần tử html

Salman Asalman aSalman A

253K80 Huy hiệu vàng425 Huy hiệu bạc513 Huy hiệu Đồng80 gold badges425 silver badges513 bronze badges

1

Khi được hỏi ngày 27 tháng 8 năm 2015 lúc 11:11

function removeAllText(element) {

    // loop through all the nodes of the element
    var nodes = element.childNodes;

    for(var i = 0; i < nodes.length; i++) {

        var node = nodes[i];

        // if it's a text node, remove it
        if(node.nodeType == Node.TEXT_NODE) {

            node.parentNode.removeChild(node);


            i--; // have to update our incrementor since we just removed a node from childNodes

        } else

        // if it's an element, repeat this process
        if(node.nodeType == Node.ELEMENT_NODE) {

            removeAllText(node);

        }
    }
}

Bạn có thể tạo một hàm/plugin sẽ tái phát thông qua các phần tử trong phần tử cấp cao nhất của bạn, xóa bất kỳ nút văn bản nào được tìm thấy:

var thing = document.getElementById('thing');
removeAllText(thing);

JSfiddle

Đã trả lời ngày 27 tháng 8 năm 2015 lúc 11:17Aug 27, 2015 at 11:14

GeorgeGeorgeJonathan Dumaine

Huy hiệu vàng 36K864 Huy hiệu bạc3 gold badges36 silver badges50 bronze badges

6

Rõ ràng bạn muốn xóa tất cả các nút văn bản khỏi phần tử. Bạn có thể truy cập các nút văn bản bằng hàm


6. Và bạn không cần bất kỳ đệ quy nào. jQuery làm điều đó cho bạn:

clones=[];

$('div').children().each(function() {

clones.push($(this).clone().text(''));
});

$('div').empty();

for(i=0;i

Đã trả lời ngày 27 tháng 8 năm 2015 lúc 11:21

Salman Asalman a

JavaScript đơn giản, Giải pháp đệ quy:Aug 27, 2015 at 12:22

Hướng dẫn remove text from html element - xóa văn bản khỏi phần tử html

Sử dụng nó như:sinisake

Khá đơn giản2 gold badges18 silver badges27 bronze badges

function RemoveText(el){
   el.children().each(function(){
     var $this = $(this);
     if ($this.children().length > 0){
       $this.children().each(RemoveText($this));
     }
     else{
       $this.text("");
     }     
   });
}

Đã trả lời ngày 27 tháng 8 năm 2015 lúc 11:14Aug 27, 2015 at 11:16

Jonathan Dumainejonathan DumaineZoran P.

5.4053 Huy hiệu vàng36 Huy hiệu bạc 50 Huy hiệu Đồng1 gold badge13 silver badges16 bronze badges

2

try:

function empty(e) {
    var childs = e.children;
    for(var i=0;i

Một phương pháp nữa, chỉ cho mục đích vui vẻ và học tập. Đã cố gắng làm điều đó mà không sử dụng các hàm JS gốc, kiểm tra các thuộc tính phần tử ... Đáng ngạc nhiên, nó hoạt động.Aug 27, 2015 at 11:22

JQuery không tính các nút văn bản thuần túy là các phần tử con của container, vì vậy chúng ta cũng có thể sử dụng hành vi này.


0

1

Hướng dẫn remove text from html element - xóa văn bản khỏi phần tử html

Bản demo: http://jsfiddle.net/djvhxgm9/

Đã trả lời ngày 27 tháng 8 năm 2015 lúc 12:2211 gold badges96 silver badges103 bronze badges

sinisakesinisakeDec 14, 2021 at 4:50

11.1k2 Huy hiệu vàng18 Huy hiệu bạc27 Huy hiệu đồng

Đã trả lời ngày 27 tháng 8 năm 2015 lúc 11:16

example:


2

Zoran P.Zoran P.Aug 27, 2015 at 11:13

8701 Huy hiệu vàng13 Huy hiệu bạc16 Huy hiệu đồngAndrey Saleba

Đã trả lời ngày 27 tháng 8 năm 2015 lúc 11:224 gold badges17 silver badges27 bronze badges

1