2013-03-04 37 views
7

Các liên kết từ cơ sở dữ liệu là tiêu đề trang web và hiển thị trên trang "Interesting Article: Tác giả" - nhưng đôi khi liên kết là câu hỏi "Where's China?: GoogleMaps". ?: trông ngớ ngẩn nên tôi muốn thay thế HTML ?</span>: bằng ?</span>.Tìm và thay thế chuỗi HTML bằng jQuery

Đây là jQuery tôi làm việc ra:

$('#relatedinfo ul li a').html().replace('?</span>:','?</span>');

Nhưng điều này không thực sự thay thế nó trong DOM. Làm thế nào để tôi nhận được chuỗi đó thực sự thay đổi trang?

Trả lời

19

tôi muốn đề nghị:

$('#relatedinfo ul li a').html(function(index,html){ 
    return html.replace(/<\/span>(\:)/,''); 
}); 

JS Fiddle demo.

Hoặc thậm chí:

$('#relatedinfo ul li a').text(function(index,text){ 
    return text.replace(':',''); 
}); 

JS Fiddle demo.

Một cách tiếp cận được cập nhật là để kiểm tra xem các ký tự cuối cùng trong span là trong mảng của ['?','!','.'] và, nếu có, sau đó để loại bỏ các : từ nodeValue của nextSibling:

$('#relatedinfo ul li a span').text(function(index,text){ 
    var lastchar = text.split('').pop(); 
    if (['?','!','.'].indexOf(lastchar) > -1) { 
     this.nextSibling.nodeValue = this.nextSibling.nodeValue.replace(':',''); 
    } 
}); 

JS Fiddle demo.

Tài liệu tham khảo:

+0

Nhờ đống cho câu trả lời và lời xin lỗi đã dành quá lâu để lấy lại vòng với nó. Câu trả lời là chính xác nhưng tôi không chính xác đóng khung câu hỏi của tôi và vì vậy giải pháp không hoàn toàn phù hợp với vấn đề của tôi. Tôi đã [chia rẽ fiddle] (http://jsfiddle.net/danielmee/FY5Tp/2/) và, bằng cách sử dụng các thông tin bạn đã cung cấp, làm việc ra phần lớn của nó .... chỉ không thể tìm ra cú pháp cho toán hạng OR trong câu lệnh if. Tôi đã giải quyết nó bằng cách sử dụng! = Null :) – Daniel

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