Xóa thẻ span khỏi chuỗi JavaScript

Tôi nghĩ vấn đề là do bạn đang nghĩ về việc “loại bỏ” trong khi điều bạn thực sự muốn là “có được”. Đúng, kết quả cuối cùng có thể giống nhau, nhưng cách tiếp cận và hiệu quả thì khác nhau rất nhiều

IMHO, sẽ tốt hơn nếu xác định phần tử cha gần nhất có chứa các khoảng quan tâm, lấy các khoảng và sau đó lấy nội dung văn bản của chúng. Tôi chưa làm việc với API clipboard kể từ SDK nhưng AFAIK, mặc dù đã có một số thay đổi về bảo mật nhưng nó vẫn hoạt động

Tôi thường làm việc với các hàm JavaScript gốc nhiều hơn là với jQuery, nhưng một thứ như mã psuedocode này sẽ hoạt động

let found_text_content = ''; 
$( 'selector_for_closest_parent' ).find( 'span' ).each( function () { 
 found_text_content += $(this).text();  // maybe with a + "\r\n" ?
} 

Nếu điều đó nhiều hơn bạn muốn, bạn có thể cần phải bọc các điều kiện nối thêm bên trong. Sau khi “found_text_content” là những gì bạn muốn, hãy ghi nó vào khay nhớ tạm

Được cấp bằng sáng chế cho đến năm 2033. Huyết thanh số 1 của Vương quốc Anh * Nguồn. Tập đoàn NPD. , Giá trị doanh số của các loại huyết thanh dành cho phụ nữ Prestige của Franchise Line, tháng 8 năm 2020 – tháng 5 năm 2021 1

Giờ đây với Công nghệ tín hiệu năng lượng Chronolux™, loại huyết thanh hấp thụ nhanh này làm giảm sự xuất hiện của nhiều dấu hiệu lão hóa do các cuộc tấn công môi trường của cuộc sống hiện đại

Da trông mượt mà và ít nếp nhăn hơn, trẻ trung hơn, rạng rỡ hơn và săn chắc hơn

BỨC XẠ

• Da trông rạng rỡ và căng mọng do được dưỡng ẩm—cho đến tận sáng

• hydrat hóa 72 giờ MỚI

• CÙNG kết cấu không chứa dầu được yêu thích

CHẮC CHẮN hơn

• MỚI Bây giờ, làn da cảm thấy săn chắc hơn, với độ nảy và sức sống mới

TRẺ TRUNG

• MỚI Lỗ chân lông trông nhỏ lại

• Da trông trẻ trung hơn khi các đường nhăn và nếp nhăn giảm đi

• 90% phụ nữ cho biết làn da của họ cảm thấy mịn màng hơn ngay lập tức

#1 CỦA CHÚNG TÔI DÀNH CHO MỌI NGƯỜI Hiệu quả với mọi tông màu da

* Đây là serum hiệu quả cao mà làn da không thể thiếu

MỖI ĐÊM. MỖI BUỔI SÁNG. Bạn có biết làn da có nhịp điệu 24 giờ để đổi mới tự nhiên vào ban đêm và bảo vệ ban ngày?

Để làm mới làn da rạng rỡ và tràn đầy sức sống, hãy sử dụng Advanced Night Repair vào buổi sáng và buổi tối. Nó hydrat hóa và giúp thúc đẩy nhịp điệu tái tạo đẹp tự nhiên của làn da. Thức dậy mỗi ngày với làn da đẹp nhất của bạn

*Thử nghiệm của người tiêu dùng trên 543 phụ nữ

Làm thế nào để sử dụng nó. Thoa huyết thanh mặt này lên da sạch trước kem dưỡng ẩm, AM và PM. Sử dụng một ống nhỏ giọt. Thoa đều nhẹ nhàng khắp mặt và cổ họng

Hãy thử nghi thức trái tim của chúng tôi. Nhỏ một ống nhỏ giọt Advanced Night Repair vào lòng bàn tay của bạn. Massage lên mặt theo hình trái tim. Sử dụng tất cả các ngón tay của cả hai bàn tay, bắt đầu từ giữa khuôn mặt của bạn và di chuyển ra ngoài tai. Lướt tay từ hai bên mặt xuống dưới cằm. Tiếp theo, vạch một trái tim lớn hơn từ giữa trán ra thái dương. Lướt xuống hai bên khuôn mặt và đóng trái tim lại dưới cằm. Kết thúc Nghi thức Trái tim bằng cách xoa bóp nhẹ nhàng lên cổ theo chuyển động đi xuống

Sự kiện công thức. • Không dầu • Chai thủy tinh mới. và có thể tái chế • Đã được bác sĩ da liễu kiểm nghiệm • Đã được bác sĩ nhãn khoa kiểm nghiệm • Không gây mụn; . • Nhiều dấu hiệu lão hóa • Ngăn ngừa lão hóa rõ rệt • Mất độ săn chắc, săn chắc • Nếp nhăn • Khô, mất nước • Xỉn màu, mất vẻ rạng rỡ • Da không đều màu

Vì lý do vệ sinh, sản phẩm này không được trả lại nếu chưa được đóng gói, chưa niêm phong hoặc đã qua sử dụng, trừ khi bị lỗi

Nếu "chuỗi" bạn cần chuyển đổi đã là một phần nội dung của phần tử HTML, thì đây là JavaScript POV (đơn giản là cũ) (i. e. giải pháp không phải jQuery)

element.outerHTML = element.innerHTML;

Ví dụ và giải thích

Vì vậy, ví dụ: nếu bạn muốn mở/xóa tất cả các khoảng trong tài liệu của mình, bạn có thể lặp qua tất cả các phần tử có liên quan như sau

document.querySelectorAll('span').forEach(spanElmt => {
  spanElmt.outerHTML = spanElmt.innerHTML;
};

Ví dụ sau minh họa cách thức hoạt động của tính năng này, cho thấy phần tử được chỉ định bị xóa/mở gói, trong khi bất kỳ phần tử nào được lồng bên trong vẫn còn nguyên vẹn

const btn     = document.querySelector('button');
const redSpan = document.querySelector('.red'  );
const par     = document.querySelector('p'     );
const div     = document.querySelector('div'   );

const unwrapElmt = elmt => {
  elmt.outerHTML = elmt.innerHTML; // *** the key line
};

const showParagraphHTML = () => {
  div.textContent = 'HTML for the above line: ' + par.innerHTML;
};

showParagraphHTML();

const unwrapRedSpan = () => {
  unwrapElmt(redSpan);
  showParagraphHTML();
};

btn.addEventListener('click', unwrapRedSpan);
.red {
  color: red;
}
.italic {
  font-style: italic;
}
Click here to unwrap/remove red span

Here is some very red text.

Chèn một chuỗi vào một phần tử HTML

Giải pháp này yêu cầu văn bản/chuỗi được sửa đổi đã là một phần của tài liệu hoặc thành phần HTML. Do đó, nó sẽ không hoạt động trên một chuỗi độc lập như sau

const myStr = 'some very interesting thing';
myStr.outerHTML = myStr.innerHTML; // won't work

Cuối cùng, đây là những gì câu hỏi ban đầu đã hỏi. Tuy nhiên, chuỗi ở trên có thể được tạo thành một phần của phần tử bộ chứa HTML mồ côi trung gian tạm thời, sau đó giải pháp này có thể sử dụng được

const myStr = 'some very interesting thing';
const container = document.createElement('div'); // a temporary orphan div
container.innerHTML = myStr;
const spanToUnwrap = container.querySelector('span');
spanToUnwrap.outerHTML = spanToUnwrap.innerHTML;
const myModifiedStr = container.innerHTML;

Điều này có vẻ như quá mức cần thiết nếu, e. g. , bạn chỉ muốn xóa một hoặc một vài thẻ đơn giản khỏi một chuỗi, như được đề xuất trong câu hỏi. Trong trường hợp như vậy, một sự thay thế dựa trên regex có thể sẽ đủ như đề xuất trong câu trả lời khác. Tuy nhiên, đối với bất cứ điều gì phức tạp hơn (e. g. chỉ muốn loại bỏ các nhịp của một lớp cụ thể, v.v. ), sử dụng một phần tử HTML mồ côi tạm thời làm trung gian có thể khá hữu ích

Lưu ý rằng chiến lược được mô tả trong phần này cuối cùng là điều mà một câu trả lời khác đang chỉ ra cách thực hiện với jQuery. Tuy nhiên, nếu chuỗi ban đầu của bạn đã là một phần của phần tử HTML và bạn chưa cần jQuery, thì việc sử dụng jQuery có thể là quá mức cần thiết khi hoán đổi outerHTML/innerHTML này thực sự là tất cả những gì bạn cần

Làm cách nào để xóa giá trị span trong JavaScript?

getElementsByTagName("span")[0]. innerHTML=""; Bạn có thể thay thế 0 thành bất kỳ chỉ mục hợp lệ nào để xóa khoảng thời gian nhất định. Lưu câu trả lời này.

Làm cách nào để xóa thẻ span bằng jQuery?

tìm('span'). xóa();