2012-11-21 43 views
5

Tôi có một mã HTML với div container và phần tử HTML khác và văn bản bên trong nóNhận HTML mảnh mà không cần văn bản bằng jQuery

<div id="container"><i class="myico"></i> text</div> 

tôi cần để có được chỉ phần tử HTML từ container mà không có văn bản .

Vì vậy, tôi cần phải có được chỉ

<i class="myico"></i> 

Làm thế nào tôi có thể nhận được nó bằng cách sử dụng jQuery?

+0

tôi chính xác cần phải thay đổi văn bản và nhận được HTML '

another txt changed
' – Cichy

Trả lời

2

Đơn giản chỉ cần để có được nguyên tố này sử dụng một trong các cách sau:

var element = $("#container > i"); 
var element = $("#container i"); 
var element = $("#container .myico"); 
var element = $("#container").find("i.myico"); 

Để có được nguyên tố này ra khỏi việc sử dụng đánh dấu detach():

var element = $("#container > i").detach(); 

Sau đó, để có được một mã HTML, bạn có thể sử dụng outerHTML thuộc tính:

var html = element.get(0).outerHTML; 

DEMO:http://jsfiddle.net/tLvdZ/

+0

Nhưng làm thế nào tôi có thể nhận được để đánh dấu này và đặt nó vào một container khác. Giải pháp này không hoạt động '$ ('# cont2'). Html ($ (" # container> i "). Detach() + 'văn bản khác')' – Cichy

+0

@Cichy Thử cái này: '$ (" # container i ") .appendTo (" # cont2 ");' hoặc this: '$ (" # cont2 "). chắp thêm ($ (" # container i ")," văn bản khác ");'. Đây là một ví dụ: http://jsfiddle.net/tLvdZ/1/. – VisioN

+0

Cảm ơn rất nhiều. Tôi đã giải quyết được vấn đề của tôi với các đề xuất của bạn http://jsfiddle.net/tLvdZ/5/ – Cichy

0
var htmltag = $("#container").html(); 
htmltag = htmltag.replace($("#container").text(),""); 

Để tham khảo bạn có thể sử dụng: - refer this

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