Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

jquery'de nesneye ait özellikler nasıl listelenir?

$("#bilgiler").attr("ad", "ali");
$("#bilgiler").attr("sehir", "ankara");
$("#bilgiler").attr("width", "500");

jQuery ile yukarıdaki gibi bir kullanım ile nesnenin özelliklerinde istediğimiz bilgiyi saklayabiliyoruz.

Sorum şöyle: #bilgiler adlı nesne üzerinde attr() ile kaydettiğim tüm parametreleri for gibi bir döngü ile nasıl listelerim?

istediğim sonuç şu şekilde olmalı:
ad ---- ali
sehir ----- ankara
width ----- 500
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Doğru Cevap

  • turkfox13 adlı üyenin fotoğrafı
    10 yıl önce yazılmış
    7 cevap - 1 soru
    pek anlamadım ama işine yarar gibi,

    $('#nesnecik').each(function(index) {
        	alert("Ad ---- "+ $(this).attr("ad"))
        	alert("Sehir ---- "+ $(this).attr("sehir"))
    	alert("width ---- "+ $(this).attr("width"))
      });
    
    


    burda yapılan eklenilenleri elde etme,
    birden çok #nesnecik elemanıda olsa onları'da alert'lar
    • Vedia adlı üyenin fotoğrafı Vedia
      Varolan ne kadar atribute varsa hepsini döngü yardımıyla otomatik listelesin istiyorum. attribute adlarını yazmayacağım, bunları kod tepit edip döküm verecek.
      10 yıl önce yazılmış
    • turkfox13 adlı üyenin fotoğrafı turkfox13
      Biraz yordu ama bende bişi öğrendim :)
      bende çok kullanıyordum attr ile nesnelere tag ekleme özelliğini

      aşağıdaki kod işini görücektir, gelen veriyi split edip, tek tek elde edebilirsin

      <htm>
      <head>
      <script type="text/javascript" src="jquery.js"></script>
      
      <script>
      if(typeof(console) === "undefined" || typeof(console.log) === "undefined")
          var console = { info: function() { } };
      	
      jQuery.error = console.error;
      if(jQuery) {
      	jQuery(document).ready(function() {
      				
      		jQuery.fn.listAttributes = function(prefix) {
      			var list = [];
      			$(this).each(function() {
      				console.info(this);
      				var attributes = [];
      				for(var key in this.attributes) {
      					if(!isNaN(key)) {
      						if(!prefix || this.attributes[key].name.substr(0,prefix.length) == prefix) {
      							attributes.push(this.attributes[key].name);
      						}
      					}
      				}
      				list.push(attributes);
      			});
      			return (list.length > 1 ? list : list[0]);
      		}
      	});
      }
      
      
      $(function() {
      
        alert($("#nesnecik").listAttributes());
      
      });
      
      </script>
      
      </head>
      
      <body>
      
      	<div id="nesnecik" ad="orhun" no="123"></div>
      </body>
      </html>
      
      10 yıl önce yazılmış
    • ireaf adlı üyenin fotoğrafı ireaf
      Bence bu işin daha kolay bir yolu var. Bu iş içi bi plugin yazılmış.
      http://code.google.com/p/jquery-list-attributes/

      adresinden erişebilirsiniz.
      10 yıl önce yazılmış
    • Vedia adlı üyenin fotoğrafı Vedia
      Merhaba,

      Aradığım sorunun cevabı http://code.google.com/p/jquery-list-attributes/ sayfasındaki eklendi, turkfox13'ün cevabı da bu eklentinin uygulama örneği.

      Teşekkürler...
      10 yıl önce yazılmış

Cevaplar

  • mtdesign adlı üyenin fotoğrafı
    10 yıl önce yazılmış
    14 cevap - 0 soru
    Böyle bir kullanım HTML yasalarına aykırıdır zaten. Eğer W3C ile DOM kaynağına tarama yapılabilirse, muhtelemen attribute hataları ortaya çıkacak.

    Bu işlem için array ya da daha uygun olan JSON modeli kullanılabilir:

    JSON Modeli:
    var bilgiler = {
         ad: "ali",
         sehir: "ankara",
         width: 500
    }
    • Vedia adlı üyenin fotoğrafı Vedia
      Merhaba,

      Bu konuyu farklı bir amaç için kullanacağım. Bu nedenle, bunun HTML kurallarına ters olması hususunu hatırlatmanız yerinde olmakla ben bunu bir web sitesinde değil, web uygulamamda kullanacağım.

      Ayrıca, bu konuyu daha da doğru yerde yapacağım. jQuery'nin .data() nesnesi bu konuda tam da aradığım başlık.

      Selamlar,
      Nuri Akman
      10 yıl önce yazılmış
    • mtdesign adlı üyenin fotoğrafı mtdesign
      Web sitesi olmasına gerek yok sonuçta projen bir browser ile çalışacak(IE ya da Firefox vb.) aykırılık kaçınılmaz.

      jQuery.data() fonksiyonuda zaten söylediğim şeyi yapıyor.
      alert(bilgiler.ad);
      


      Sonuç olarak: ali
      10 yıl önce yazılmış