2013-04-20 18 views
5

Jquery kullanırsanız bir grup bireyleri seçme:tüm metin girişlerini seçmek için jQuery elemanları

var inputs = $('#form input[type="text"]'); 

Onlar jQuery sarılmıştır. Onlarla ne istersem yapabilirim.

inputs.css('height', '1000px'); 
//muhahaha! 

Grup olarak uyuyorlar. Ama bir şey eksik gibi görünüyor. Her birini, bir dizi nesne gibi sanki görebiliyorum.

console.log(inputs[0]); 
// <input type="text" /> 

Ancak yukarıdaki çıktı yalnızca html'dir; Ben artık bir jQuery nesnesi :(Ben, yine her bir öğeyi sarmak zorunda kalmadan bireyin üzerinde jQuery'nin yöntemleri kullanmaya devam etmek veya bazı garip, karanlık ve açıklanamaz için bu mümkün değil yapmak nasıl

inputs[0].css('font-size', '100px'); 
// Uncaught TypeError: Object #<HTMLInputElement> has no method 'css' 

olduğunu ne zaman neden mi?

bile bu bir aramaya başlamak için nerede bilmiyordum ve benim jQuery yolculuk bugüne kadar cevap bana yol değil. teşekkürler!

cevap

5

bu sayfaya bakın. Bu teknik olarak başka bir sorgu yapıyor mu? Sezgisel olarak, bir dizi dizini kullanabiliyor gibi görünüyor ...
+0

hile yapmak olmalı: – jamil

+1

Eğer cevabın bağlantısını takip ederseniz, '.eq()' bağlantısından alıntı: Bir dizi DOM öğesini temsil eden bir jQuery nesnesi verildiğinde. eq() yöntemi, bu kümedeki bir öğeden yeni bir jQuery nesnesi oluşturur. Sağlanan endeks bu elemanın set içindeki konumunu belirler. –

0

tek yolu yine her elemanı sarma önlemek için ($(inputs[0]).css('font-size', '100px'))

saf JavaScript kullanıyor olacaktı. Örnek: inputs[0].style.fontSize = "100px";

1

bkz bu function .eq() in Jquery-API

zaman erişim Yukarıda verilen yöntemle endeksi seçerseniz Dizi-Index aracılığıyla JQuery Dom-Düğüm-Koleksiyon, sen RAW Dom-Öğeleri olsun, sen' özellik geliştirilmiş jQuery-Sarılmış Elemanları alırsınız. Dokümanlara bakın. jQuery Filtering

inputs.eq(0).css('font-size', '100px'); 

bu durumda beklediğim gibi inanılmaz basit

İlgili konular