2009-12-07 20 views
22

jQuery nesnesini saf HTML olarak yazdırmanın iyi bir yolu var mı?jQuery nesnesini HTML olarak yazdırma

örn:

<img src="example.jpg"> 

<script> 
var img = $('img').eq(0); 
console.log(img.toString()); 
</script> 

toString()

bu şekilde çalışmıyor.

<img src="example.jpg">

cevap

6

, bu uzantıyı kullanmak outerHTML veya Bu outerHTML.

Güncelleme

Güncelleme bağlantı ve ikinci bağlantı için kod içerir:

$.fn.outerHTML = function(){ 

    // IE, Chrome & Safari will comply with the non-standard outerHTML, all others (FF) will have a fall-back for cloning 
    return (!this.length) ? this : (this[0].outerHTML || (
     function(el){ 
      var div = document.createElement('div'); 
      div.appendChild(el.cloneNode(true)); 
      var contents = div.innerHTML; 
      div = null; 
      return contents; 
    })(this[0])); 

} 
+0

Yani, bunun için gerçekten bir uzantıya ihtiyacım var? ayrıştırmadan önce klonlama hariç, Magnar'ın örneği ile aynı şeyi yapar. Aynı şey varsa – David

+0

, ancak öğeleri DOM'de taşımaya devam etmek için onu klonlamanız gerekir ve bunları kaldırırsınız. –

15

Bunu sarın ve daha sonra html kullanabilirsiniz: HTML eşdeğer dize, yani gerek HTML biçiminde nesneyi yazdırmak gerekiyorsa

var img = $('img').eq(0); 
console.log(img.wrap("<span></span>").parent().html()); 
+0

çalışır, ama biraz garip görünüyor ... daha iyi bir yolu var mı? – David

+3

DOM değişmeyecek mi? Önce "img" yapmalı mıyız? – Casebash

22

$('img')[0].outerHTML

sayfada size ilk img HTML'sini verecek . Ardından, tüm görüntülerin HTML'ini almak için for döngüsünü kullanmanız veya görüntüye bir ID koymanız ve sadece jQuery seçicisinde belirtmeniz gerekir.

+0

ya da, DOM'daki özel öğeyi HTML için istediğinizi biliyordunuz ... $ ('# some .selector') [0] .outerHTML Sadece bir if ($ (') ile sardığınızdan emin olun #some .selector '). uzunluk) – bmarti44

İlgili konular