2011-12-25 63 views
17

Tôi muốn xóa văn bản "Bởi:" khỏi phần tử trong trang web của tôi. Tôi muốn phần còn lại của văn bản ở lại đó. Làm thế nào tôi có thể đạt được điều đó với jQuery? Cảm ơn bạn.jQuery Xóa văn bản cụ thể khỏi một phần tử

HTML

<div id="text">By: Anonymous From Minnesota</div> 

Tôi muốn nó chỉ là:

<div id="text">Anonymous From Minnesota</div> 
+0

xin vui lòng gửi html – themerlinproject

+0

loại bỏ văn bản của bạn từ những gì thuộc tính của nguyên tố gì? Giống như ... giá trị hiện tại của trường nhập văn bản? Hoặc chỉ là văn bản tùy ý bên trong một phần tử div hoặc p? – codercake

+0

@themerlinproject Đã thêm HTML – henryaaron

Trả lời

28

Nếu bạn muốn tìm mọi phần tử với "By:" trong và xóa nó, bạn có thể thử điều này:

$(':contains("By:")').each(function(){ 
    $(this).html($(this).html().split("By:").join("")); 
}); 

Điều này loại bỏ bất kỳ sự xuất hiện của "By:" trong bất kỳ phần tử nào. Nếu bạn muốn nhắm mục tiêu các loại phần tử specfic, chỉ cần thay đổi $(':contains("By:")') để bao gồm bất kỳ bộ chọn nào phù hợp với bạn.

+0

Điều này có vẻ giống như những gì tôi đang tìm kiếm, tuy nhiên, vì một số lý do, dấu phẩy được thêm ngẫu nhiên: http: // jsfiddle. net/xSphc/ – henryaaron

+0

Hah! Tôi quên thêm tham số dấu phân cách để tham gia(). Tôi đã cập nhật các câu trả lời với tham gia (""). Về cơ bản những gì nó đang làm là chia chuỗi thành một mảng bằng cách sử dụng "By:" làm dấu tách, sau đó nối các phần tử mảng trở lại vào một chuỗi bằng cách sử dụng không có gì là dấu tách. Hy vọng rằng sẽ giúp :) –

+1

Nếu bạn quan tâm đến việc nắm bắt hiệu suất của các câu lệnh cơ bản .split(). Join() .replace (// g, ""), bạn có thể thấy điều này thú vị: http://jsperf.com/split-join-vs-regex-replace –

3

var str = $("#text").text(); 
 
$("#text").text(str.substring(3));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 
<div id="text">By: Anonymous From Minnesota</div>

Sử dụng javascript của substring và cung cấp cho div của bạn một ID để truy cập nó một cách dễ dàng:

html:

<div id="text">By: Anonymous From Minnesota</div> 

jquery:

var str = $("#text").text(); 
$("#text").text(str.substring(3)); 

Bạn có thể làm điều đó trong một dòng quá:

$("#text").text($("#text").text().substring(3)); 
9

giải pháp toàn cầu hơn bằng cách sử dụng cụm từ thông dụng. Điều này sẽ thay thế By: ngay cả khi cấu trúc chuỗi của bạn sẽ thay đổi.

var str = $('div').text().replace(/By:/g, ''); 
 
$('div').text(str);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 
<div id="text">By: Anonymous From Minnesota</div>

Các vấn đề liên quan