Điều này khiến tôi bối rối. Tôi muốn xóa dấu "+" khỏi phần tử label
. Đây là HTML:Xóa ký tự khỏi giữa một chuỗi: mà không xóa phần tử bên trong
<label class="option" for="edit-attributes-21-33">
<input type="radio" id="edit-attributes-21-33" name="attributes[21]"
value="33" checked="checked" class="form-radio"> 4 oz, +$15.00</label>
tôi bắt đầu với điều này
$(".option").each(function(index, value) {
$(this).text($(this).text().replace("+", ""));
})
này loại bỏ dấu "+" nhưng sẽ loại bỏ các yếu tố đầu vào. Vì vậy, sau đó tôi đã thử:
$(".option").each(function(index, value) {
var oldString = $(this).html();
var newString = oldString.replace("+", "");
console.log(oldString, newString);
$(this).text(newString);
})
Điều này tạo chuỗi ký tự html chính xác, nhưng đó là chuỗi và được chuyển ngược lại DOM theo cách đó. Tôi đã nhìn thấy một bài đăng khác có cùng vấn đề, nhưng không có giải pháp.
liên quan nhưng không hoàn toàn trùng lặp: http://stackoverflow.com/questions/4106809/how-can-i-change-an-elements-text-without-changing-its-child -elements –
Tôi không chắc chắn những gì bạn có ý nghĩa bởi các yếu tố đầu vào là tước ra? Đưa ra một ví dụ về những gì nó là ban đầu, những gì nó sẽ trở thành sau khi mã hiện tại, và những gì bạn muốn nó làm. Ví dụ: Bản gốc: 'Abc + 123 + 456' phải là 'Abc 123 + 456' nhưng mã này trả về' Abc 123 456' – Nitroware