2009-11-06 19 views
15

Tôi muốn xóa ký tự đầu tiên khỏi văn bản của liên kết bằng jQuery.Làm cách nào để xóa ký tự đầu tiên khỏi văn bản của liên kết bằng jQuery?

<span class="test1"> +123.23 </span> 
<span class="test2"> -13.23 </span> 

Tôi muốn xóa "+" và "-" khỏi jQuery.

Output:

<span class="test1"> 123.23 </span> 
<span class="test2"> 13.23 </span> 
+0

Bạn đã viết mã nào cho điều này và kết quả bài tập về nhà của bạn là gì? –

Trả lời

40
var val = $("span").html(); 
$("span").html(val.substring(1, val.length)); 
+1

Đã bỏ qua một bước lùi: 1) điều này thay thế giá trị của tất cả các phần tử span với giá trị của phần tử span đầu tiên. 2) ví dụ này có lỗi cú pháp. – BalusC

+0

Chỉ mục bắt đầu của bạn không chính xác. Nên là 2. Ngoài ra, bạn cần phải thêm một không gian hàng đầu cho giá trị mới vì đó là những gì cần thiết trong đầu ra. –

+7

Câu trả lời này là không cần thiết phức tạp. Tại sao không chỉ làm $ ('span'). Html(). Substring (1)? –

24
$("span.test1, span.test2").each(function() { 
    $(this).text($(this).text().replace(/[+-]/, "")); 
}); 
+0

Chuỗi con +1 là cách làm xấu. Mặc dù câu trả lời của tác giả đánh dấu .. câu trả lời này bằng cách sử dụng Regex là câu trả lời đúng! – Evildonald

+3

@Evildonald: tại sao chuỗi con xấu? Tôi đồng ý rằng nó tốt hơn để sử dụng Regex, nhưng tôi sẽ không gọi substring xấu :-) –

+2

Tại sao Regex lại tốt hơn? Nếu bạn biết nơi thay thế cần phải xảy ra, chuỗi con tốt hơn Regex từ cả quan điểm hiệu suất và khả năng đọc. –

2

bạn có thể nhận/đặt HTML sử dụng .html() và loại bỏ các ký tự đầu tiên sử dụng .substring(), tôi nghĩ rằng nó khá rõ ràng bây giờ, bạn chỉ cần viết mã dòng 2 (hoặc 3).

7
// get the current text 
text1 = $(".test1").html(); 
// set the text to the substring starting at the third character 
$(".test1").html(text1.substring(2)); // extract to the end of the string 

text2 = $(".test2").html(); 
$(".test2").html(" " + text2.substring(2)); // looks like you want to keep the leading space 
Các vấn đề liên quan