2012-07-09 41 views
6

Tôi đang cố gắng thay thế văn bản được đánh dấu (được đánh dấu) cụ thể từ phần tử.jQuery thay thế văn bản được đánh dấu

Đây là cách tôi nhận được văn bản nêu bật cho đến nay:

var markArea = $('.ElementText textarea').get(0); 
var text  = markArea.value.substring(markArea.selectionStart, markArea.selectionEnd);

Vì vậy, nếu tôi có một cái gì đó như thế này trong textarea: "cam táo chuối táo" và đánh dấu từ thứ ba (táo) Tôi muốn thay thế chính xác những gì tôi đã đánh dấu mà không có bất kỳ sự cố nào khác của "quả táo" trong vùng văn bản.

Có cách nào để chỉ định khu vực bắt đầu và kết thúc nơi mã nên tìm kiếm thay thế trong chuỗi không?

+0

tôi cảm thấy như thế này là một điều Regex. .. –

+0

@Andrew, Bạn đang lắc lư. Bạn đã chỉnh sửa câu hỏi trong vòng một phút. Rất đẹp – Adrian

+0

nếu bạn có thể tìm thấy vị trí sau đó http://www.w3schools.com/jsref/jsref_charat.asp sẽ hữu ích trong trường hợp của bạn. – Adrian

Trả lời

5

Bạn có thể thử một cái gì đó như thế này,

var markArea = $('.ElementText textarea').get(0); 
var startStr = markArea.value.substring(0,markArea.selectionStart); 
var endStr = markArea.value.substring(markArea.selectionEnd); 
var text  = startStr +"REPLACEMENT VALUE HERE"+ endStr;  
$('.ElementText textarea').val(text); 

Tôi muốn chơi với điều này một chút nó có thể được tắt bằng 1 trên một trong hai startStr hoặc endStr (Tôi luôn luôn lộn xộn mà lên: /) nhưng điều này nên làm những gì bạn đang muốn làm.

+0

Vâng, đây chính xác là những gì tôi đang tìm kiếm! Cảm ơn bạn đã dành thời gian! – Zhivko

+0

np. Vui mừng được giúp đỡ. :) – Dan

3

Wrote này trước câu trả lời ở trên, nhưng tôi sẽ giữ nó bởi vì nó chỉ là một cách khác nhau của văn bản mã/không sử dụng jQuery:

function replaceAtIndex(str,s,e,rep){ 
    return str.slice(0,s) + rep + str.slice(e); 
} 

markArea.value = replaceAtIndex(markArea.value,markArea.selectionStart,markArea.selectionEnd,"replacement"); 
+0

cá nhân nghĩ câu trả lời của bạn tốt hơn rồi. Sạch hơn nhiều và là một chức năng nó có thể được quản lý dễ dàng hơn. gj – Dan

+0

Đó là giải pháp rất gọn gàng. Cảm ơn! – Zhivko

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