2014-06-16 17 views
5

Tôi muốn hiển thị một số nút nếu ai đó chọn văn bản trong một khu vực có thể chỉnh sửa - như thế này:Nối div để văn bản đã chọn

enter image description here

Vì vậy, tôi nghĩ rằng tôi phải sử dụng <div contenteditable="true"> thay vì <textarea>

Nhưng thành thật mà nói tôi không có ý tưởng làm thế nào để gắn div

Câu hỏi:

  1. Sự kiện (jquery) để chọn văn bản là gì?
  2. Làm cách nào để nối thêm div sau khi chọn vào khu vực này?

JsFiddle: http://jsfiddle.net/hA7Zn/

Thanks cho bất kỳ gợi ý!

+0

Bạn thử và viết mã ở đâu? –

+0

@idonteven trong fiddle, ít nhất chúng ta có mã HTML ở đó. –

+0

Tôi nghĩ rằng bình luận là mỉa mai ... nó chỉ là một div ... không có thử hoặc js ... –

Trả lời

1

Kiểm tra này Demo cho việc chọn văn bản,

Event selectstart là bắn trong trường hợp lựa chọn

$(function() { 
    $('div').on('selectstart', function() { 
     console.log('..'); 
     $(document).one('mouseup', function() { 
      alert(this.getSelection()); 
     }); 
    }); 
}); 
+0

đây là những gì tôi tìm kiếm (nhưng không hoạt động trong firefox) - tiếp theo tôi có thể quấn văn bản đã chọn một div và thêm các nút của tôi? – Aaroniker

+0

Tôi đang làm việc trên đó. Succesfull với div phụ thêm, nhưng không thể nối thêm nút. –

+0

tìm thấy điều này để hỗ trợ trình duyệt chéo: http://mark.koli.ch/use-javascript-and-jquery-to-get-user-selected-text – Aaroniker

1

Lựa chọn văn bản:

var text = $('text_element').text(); 

Chọn html:

var html = $('text_element').html() 

Phụ thêm dữ liệu:

$('appending_element').append(text) 
1

Nếu bạn muốn thêm các div vào cuối div của bạn, sử dụng .append().

HOẶC

Nếu bạn muốn thêm div của mình sau một số div cụ thể, hãy sử dụng .insertAfter().

0

Có thể mã này sẽ giúp bạn: -

<textarea cols="45" rows="5" id="message"> 
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. 
</textarea> 
<script> 

$("textarea").click(function(){ 
    var txt=document.getElementById("message"); 
    alert(txt.value.substr(txt.selectionStart, (txt.selectionEnd -txt.selectionStart))); 
}); 
</script> 
Các vấn đề liên quan