Bunu jQuery - document.getElementById (“selectlist”) kullanarak nasıl yapılır.


141

JQuery'de eşdeğer document.getElementById("selectlist").valuenedir?

Seçme listesi öğesinin değerini almaya çalışıyorum.

Teşekkürler.


10
Sorularınız Google'da yalnızca birkaç saniye içinde veya JQuery dokümanlarını okuyarak yanıtlanabileceğinden muhtemelen oy almıyorsunuz.
zombat

53
Cesur SO kullanıcıları için bademciklere +1. Sorusu, çözmenin ne kadar kolay / zor olduğuna bakılmaksızın, tamamen geçerli bir sorudur. Bu konuda gelecekteki aramalar için SO'ya daha fazla trafik.
Bay Smith

7
hadi çocuklar - jQuery voodoo benim gibi yaşlı bir adam için öğrenmek o kadar kolay değil, sunucu dev son 20 yıldır olduğum kadar - iyi olun ve bize kolay gitmek jQuery yeni gelenler! :-)
marc_s

1
@Boekwurm Ben - cesur olabilir, ancak SO kullanıcılarını da suçlayamazsınız. İnsanlar genellikle soruyu soran kişinin biraz çaba sarf etmesini severler.
zombat

12
Hatırladığım gibi, bu jQuery hakkında ilk alamadım. Bence bu doğruyu söylemek gerekirse geçerli bir soru, ve aşağı işaretleme sert oldu. stackoverflow.com/questions/75296/…
James Wiseman

Yanıtlar:



214

"Eşdeğer" buradaki kelimedir

Süre...

$('#selectlist').val();

... eşittir ...

document.getElementById("selectlist").value

... kayda değer ...

$('#selectlist')

... 'eşdeğer' ile aynı olmamasına rağmen ...

document.getElementById("selectlist")

... birincisi DOM nesnesi değil, bir jQuery nesnesi döndürür.

DOM nesnelerini jQuery olanından almak için aşağıdakileri kullanın:

$('#selectlist').get(); //get all DOM objects in the jQuery collection
$('#selectlist').get(0); //get the DOM object in the jQuery collection at index 0
$('#selectlist')[0]; //get the DOM objects in the jQuery collection at index 0

1
belki burada biraz teğet, ama bu harika bir bilgi olurdu: jQuery birinden DOM nesnesi almanın bir yolu var mı? edit : düzenlemede kendi sorumu yanıtladı.
Clayton Hughes

4
GetElementById () öğesinin $ () ile değiştirilemeyeceğini anlayana kadar başımı bir saat boyunca duvara dayayordum. Bu cevap için çok teşekkür ederim!
knite

3
@knite - Evet. Keşke jQuery'yi ilk kez kullandığımda bana birisinin açıklamasını isterdim.
James Wiseman

1
jquery DOM nesneleri alma sonraki bölüm açıklaması için teşekkürler :).
kailash19

+1 Yaşlı ama bir tatlım. Google Haritalar'ın neden bir DOM nesnesini kabul ettiğini, ancak jQuery nesnesimi kabul etmediğini anlamaya çalışıyordum. Hızlı bir Google araması beni jQuery dokümanlarına değil, buraya getirdi.
TonyG

9

Bu tür sorular için Jquery Belgelerini çevrimiçi olarak kontrol etmelisiniz, ancak gerçekten oldukça kapsamlı. Arkanızdaki özelliğe 'jquery selectors' denir

Genellikle yaparsınız $('#ID').val()- .sonerden sonra seçiciden döndürülen öğe üzerinde birkaç şey yapabilirsiniz. Ayrıca belirli bir sınıftaki tüm öğeleri seçebilir ve her birine bir şeyler yapabilirsiniz. Bazı iyi örnekler için belgelere bakın.


9

Üç farklı yolla yapılabilir, ancak hepsi neredeyse aynıdır

Javascript yolu

document.getElementById('test').value

Jquery yolu

$("#test").val()          

$("#test")[0].value             

$("#test").get(0).value

Bu en iyi cevap. Teşekkür ederim!
Carter Medlin

2

JQuery id seçicilerinin document.getElementById'den daha yavaş olup olmadığını merak edenler için, cevap evettir, ancak bir öğeyi arayan tüm DOM'da arama yaptığı önyargısı nedeniyle değil. jQuery aslında yerel yöntemi kullanır. Aslında jQuery önce kontrol etmek için seçicideki dizeleri ayırmak ve elbette yapıcıyı çalıştırmak için normal bir ifade kullanır:

rquickExpr = /^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/

Oysa bir DOM öğesini bağımsız değişken olarak kullanmak hemen 'this' ile döner.

Yani bu:

$(document.getElementById('blah')).doSomething();

Her zaman bundan daha hızlı olacaktır:

$('#blah').doSomething();

0

Bazı durumlarda neden hatırlayamıyorum ama $('#selectlist').val()her zaman doğru ürün değerini döndürmeyeceğim, $('#selectlist option:selected').val()bunun yerine kullanıyorum.


Belki bunu onaylayan bazı bağlantılar gönderebilirsiniz. Ancak şaşırırdım. Bu jQuery temel bir hata olacaktır. Kütüphanenin buggy sürümünü kullanmanız mümkün mü?
James Wiseman

James olabilirdi, sanırım 1.3.0'da olabilirdi, 1.3.2'de üreyemez gibi görünüyor, ama IE6 veya 7'de de olabilirdi, artık yüklemedim. eğer asıl nedeni bulabilir ve burada rapor edebilirsem.
Brett Ryan
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.