2011-02-04 14 views
7

Her zaman kendimi gizli veri elemanlarında nesne verilerini saklıyorum. Bu verileri dom düğümüne bağlamanın bir yolu olup olmadığını merak ettim. 'Anında uçmak' öznitelikleri oluşturmaya çalışırken, işe yaramıyor. Bir çocuğa dahil olan html'ye erişmek yerine, bu özellik ile mülke erişmek çok daha kolay olurdu. Bunu nasıl yapacağımı bilmem gerektiğini düşünüyorum ama yapmam. Teşekkürler., veriyi div'lere gizlemeye alternatif mi?

+0

Harika, teşekkürler çocuklar. – Orbit

+0

Daha önce de belirttiğimiz gibi, jQuery.data muhtemelen sizin aradığınız şeydir. Yani sigara html5 tarayıcılar :) –

+0

emin niçin ekleyerek zorla olmadığı için, birçok sitelerinde zaten kullanılmış göreceksiniz html5 özellikleri ve 'data-' nitelikler, oldukça harika, ve bir şeye bakmak, söz konusu 'anında uçma' özellikleri sizin için çalışmıyor. Nasıl çalıştığını görmek için bu örneğe bir bakın (http://www.webdevout.net/test?01o) – nybbler

cevap

9

Orada kesinlikle olduğunu! jQuery'nin .data().

$('#someId').data('myData', someValue); // To store the data 
$('#someId').data('myData'); // To retrieve it again 

Herhangi bir JavaScript değişkeni veri olarak saklanabilir - dizelerle sınırlı değildir. Eğer (kaçınılmalıdır olan) dedikleri gibi bu aslında DOM düğüme veri eklemek etmediğini

Not. jQuery, sakladığınız tüm verilerin önbelleğini ve eklemek istediğiniz DOM düğümlerini saklar. Yani, domNode.myData = someValue ile aynı değil.

+2

'data()' yönteminin HTML5 'data-' niteliklerini bir depolama/geri alma mekanizması olarak kullanacağından bahsetmeye değer. İşaretlemenizi jQuery tarafından okunabilecek veri nitelikleriyle yazmak mümkündür. EG:

Cat
'' data-animal' özniteliğinin değeri şu şekilde alınabilir: 'alert ($ ('# animal-1'). Data ('animal')); // cat' –

+0

@Nathan, Muhtemelen bundan bahsetmeliydim. HTML özniteliği, yalnızca depolama değil, yalnızca başlangıç ​​değeri için kullanılır. –