2012-02-04 32 views
5

Xin lỗi vì câu hỏi thật ngu ngốc. Nhưng nó cũng không hoạt động.Cách nhận html() từ phần tử ngoại trừ phần tử khác?

<html> 
<head> 
<script src='js/jquery.js' type='text/javascript'></script> 
<script type='text/javascript'> 
    $(document).ready(function() { 
    var htmlcontent = $('.content').not('.dontgrab').html(); 
    alert(htmlcontent); // returns EVERYTHING 
    }); 
</script> 
</head> 
<body> 
<div class='content'> 
    BEFORE 
    <div class='dontgrab'>DON'T GRAB</div> 
    AFTER 
</div> 
</body> 
</html> 

Đã thử $ (". Content *: not ('. Dontgrab')"). Html(); // trả về NULL

Vui lòng trợ giúp.

Cảm ơn.

+0

@DavidRodrigues: nope. đã cố gắng. –

+0

Xin cảm ơn các bạn. Tôi đoán nó sẽ được dễ dàng để loại bỏ() phần tử và sau đó chỉ cần tạo lại nó. –

Trả lời

10

này nên làm điều đó:

var clone = $('div.content').clone(); 
clone.find('.dontgrab').remove(); 

var html = clone.html(); 
+0

Điều này có xóa phần tử .dontgrab khỏi tài liệu không? Tôi cần giữ nó! –

+0

Bạn sẽ sao chép nó (tạm thời), bạn sẽ chỉ xóa từ bản sao, không phải từ tài liệu. –

+0

Bất kỳ cách nào khác? Có vẻ là một chút mã hóa thêm. =) –

-1

Tôi nghĩ rằng bạn đang cố gắng làm:

var htmlcontent = $('.content').remove(".dontgrab").html(); 

Bạn có thể sử dụng .not() nếu tình hình là như sau:

var htmlcontent = $('div').not(".dontgrab").html(); 

<body> 
<div class="content"> 
    BEFORE 

    AFTER 
</div> 
<div class="content dontgrab">DON'T GRAB</div> 
</body> 

Tôi không nghĩ rằng bạn có thể sử dụng .không cho các yếu tố được chọn trẻ em. Tôi hy vọng nó sẽ giúp

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