2012-09-07 43 views
12

Tôi đang cố tạo trình chiếu hình ảnh và tất cả những gì tôi có là trình chỉnh sửa văn bản có dạng thức để nhập hình ảnh và văn bản. Vì vậy, từ html này:jQuery chọn HTML giữa hai số nhận dạng chuỗi

<h1>title</h1> 
<p>description...</p> 

<p>#slider</p> 

<p><img src="a.jpg" /></p> 
<p><img src="b.jpg" /></p> 
<p><img src="c.jpg" /></p> 

<p>#end-slider</p> 

Bạn sẽ chọn html giữa #slider và # end-slider như thế nào?

Đó là một khái niệm tương tự để giải nén văn bản giữa [link] và [/ link] trong blog comments ví dụ: [link] http://google.com [/ link]

+0

là '# slider' ID hoặc văn bản nội dung? – undefined

+0

#slider chỉ là văn bản –

+2

Không chính xác "tương tự", dấu ngoặc vuông '[tags]' chỉ có thể được phân tích cú pháp bằng regex - và thường được thực hiện phía máy chủ để làm vệ sinh (thẻ lồng nhau, v.v.). Bây giờ bạn đang trình bày các phần tử DOM thực tế với các nút văn bản, chắc chắn bạn * có thể * phân tích chúng bằng regex, nhưng có những cách tốt hơn xung quanh đó. –

Trả lời

6

Hãy thử điều này:

$('p:contains("#slider")').nextUntil('p:contains("#end-slider")') 

cập nhật:

var end = $('p:contains("#end-slider")'); 
$('p:contains("#slider")').nextUntil(end).andSelf().add(end) 

http://jsfiddle.net/63kQC/

+0

Cảm ơn điều này đã làm việc tốt! Ngoài ra tự hỏi nếu có một cách để chọn tất cả, vì vậy các số nhận dạng và html tức là #slider html # end-slider? –

+0

@PaulMason Có, hãy thử mã cập nhật. – undefined

+0

Tuyệt vời! Cảm ơn bạn –

8
$(document).ready(function() { 
    $('p:contains("#slider")') 
     .nextUntil('p:contains("#end-slider")') 
     .wrapAll("<div id='stuff'></div>"); 
    var required = $('#stuff').html(); 
}); 

http://jsfiddle.net/483kL/

+1

awesome :) :) :) :) – AdityaParab

+1

Tất nhiên, bộ chọn ': contains' có thể bắt được một số nội dung không mong muốn, ví dụ: '

#slider *** phím tắt *** dsgdfhdfjdfj

'. OP có thể được ok với điều đó mặc dù. –

2

Hãy thử điều này

$(document).ready(function(){ 
    $('p:contains("#slider")').nextUntil('p:contains("#end-slider")'); 
}); 
Các vấn đề liên quan