2011-10-24 51 views
5

jQueryify yer imini bir sayfada kullanıyorum, böylece jQuery işlevlerini konsoldan çağırabilirim. Google Chrome'un Webkit konsoluna yanı sıra FireBug bu denedijQuery konsolda düzgün çalışmıyor

"TypeError: jQuery("li")[0].children[0].html is not a function 
[Break On This Error] jQuery('li')[0].children[0].html(); 

: Ama ne Seçilen bir nesne üzerinde bir jQuery işlevini çağırmak, ben hata alıyorum.

+0

Yer imi tıklatıyorsunuz, değil mi? Kullandığınız yer imine ve girdiklerinizle bir örnek sayfaya bağlantı kurabilir misiniz? – Whetstone

+0

Sadece jQuery'yi yükleyen bir sayfada bunu doğruladım, bu yüzden sadece FYI imi olduğunu düşünmüyorum. – HurnsMobile

cevap

9

aramayı deneyin.

jQuery("li")[0] 

Bu DOMElement değil, bir jQuery nesnesi olarak size 1 li döndürür.

jQuery("li")[0].children[0] 

Bu DOMElement değil, bir jQuery nesnesi olarak 1 li 'ın 1 çocuğu döndürür.

.html() 

Bu işlev yalnızca jQuery nesneleri için çalışır. DOMElements için .innerHTML özelliğini kullanabilirsiniz.

DOMElements ile uğraşmak yerine jQuery nesneleriyle çalışmaya devam etmelisiniz. Bunun yerine bu kullanmayı deneyin:

jQuery('li').eq(0).children().eq(0).html() 
+0

+1, çok güzel örnek – JaredPar

+0

Neden bir oylama? ** EDIT **: Nedenini görüyorum. '' (0) '' çocuklar(), eq (0) 'olmalıdır. Sabit: -P –

+1

@Rocket bu benim downvote oldu. Üzgünüm, sadece bir hata. Sorun için +1! – genesis

3

deneyin

jQuery(jQuery("li")[0].children[0]).html(); 

veya daha iyi bir

jQuery("li:eq(0)").children(':eq(0)').html(); 

veya başka bir

jQuery("li:eq(0)").children().eq(0).html(); 

bile bu bir çalışacak aşağıdaki

jQuery("li").eq(0).children().eq(0).html(); 
+0

Hayır, '[0]' bir DOM nesnesini döndürür. – pimvdb

+0

hata [0] 'bir DOMElement, bir jQuery amacı, ("li") html' olmayan ' – JaredPar

+0

' JQuery children' 'ilgilidir ve bu nedenle' çocuk() 'işlevi vardır. –

5

Bir DOM nesnesinde children[0] bir jQuery işlevi, html, aramaya çalışıyorsunuz gibi görünüyor. Bir jQuery nesnesi olduğunu sarma ve sonra köşeli parantez kullanırken artık jQuery nesnelerle çalışıyoruz html

var temp = jQuery("li")[0].children[0]; 
var html = jQuery(temp).html(); 
+2

@genesis evet, bu bir DOM özelliği. https://developer.mozilla.org/en/DOM/Element.children – JaredPar

5

Kontrol jQuery("li")[0].children[0] sonucu, düzenli DOM nesnesi DEĞİL bir jQuery nesne. HTML görmeden ben daha iyi seçici tavsiye edemez ama ucuz ve kirli düzeltme

jQuery(jQuery('li')[0].children[0]).html();

Bu DOM nesnesi .html() işlevi vardır bir jQuery nesnesine sonucu dönüştürür olacaktır.

+0

Teşekkürler! Bu mantıklı ve şimdi çalışıyor! –

3

JQuery nesnesindeki dizi öğelerine erişme ([] kullanarak), açıkça jquery yöntemlerine sahip olmayan bir DOMElement döndürür. Muhtemelen eq()'u kullanmak istiyorsunuz.