Giriş Yap / Kayıt Ol

WM Aracı'na üyelikler tekrar açıldı! Kayıt olmak için TIKLAYIN!

1Beğeni
  • 1 Yazan srkn12

Cevap Yaz Favorilerime Ekle
Seçenekler Stil
Geri Git   Forum > > jQuery

Javascript object hakkında

  #1  
Okunmamış 25 Mart 2020, 01:14
Avatar Seçilmemiş
MW Aracı
 
Üyelik Tarihi: 03 Nisan 2019
Yaş / Cinsiyet: 25 / Erkek
Meslek: .
Konum: Trabzon
Ad, Soyad: Ab... Ka...
Mesajlar: 613
Beğeniler: 264 / 197
Ticaret: 1, 100%
Aklımda bir şey var ama bir türlü yapamadım. Amacım class ı x olan bir checkbox a tıklandığı zaman class ı x olan bütün inputları each fonksiyonuna sokup, eğer o input seçili ise o inputun data-val değerindeki yazının değerini 1, değilse 0 olarak belirlemek ve bunları bir diziye yerleştirmek. Ama önemli olan key => value şeklinde olması. Sonra bunları object yapmak. Aslında each fonksiyonun içinde direkt object e key => value şeklinde depolayabilirse o da olur. En son bunları json formatına dönüştürücem. Ama çıkamadım işin içinden. Boş bir array içerisine push ile atama yapıyorum, daha sonra object e dönüştürünce anahtar değerleri 0,1,2.. Şeklinde geliyor. Şöyle örnek vermek gerekirse.
Kod:
<input data-val="bir" type="checkbox" class="x" checked>
<input data-val="iki" type="checkbox" class="x">
<input data-val="uc" type="checkbox" class="x" ckecked>
<input data-val="dort" type="checkbox" class="x" checked>
<input data-val="bes" type="checkbox" class="x">
kodu için aşağıdaki js kodu çalıştığında

Kod:
$(".x").on("click", function () {
        let tercih = [];
        $(".x").each(function () {
            let a = $(this).data("val");
            if ($(this).prop("checked")) {
//o andaki ($(this)) olan inputun data-val değerine 1 atasın
//mesela uc => 1
            } else {
//o andaki ($(this)) olan inputun data-val değerine 0 atasın
}
        });
     //   console.log({...tercih});
    });
Çıktının şöyle bir şey olmasını istiyorum.
Kod:
{"bir":1,"iki":0,"uc":1,"dort":1,"bes":0}
Konu Abdullahx tarafından (25 Mart 2020, 01:25 ) değiştirilmiştir.
  #2  
Okunmamış 25 Mart 2020, 14:53
Avatar Seçilmemiş
JavaScript 😍
 
Üyelik Tarihi: 28 Mart 2018
Yaş / Cinsiyet: 22 / Erkek
Meslek: Bilişim
Konum: Denizli
Ad, Soyad: Se... Ka...
Mesajlar: 395
Beğeniler: 79 / 59
Ticaret: 0, 0%
İstediğin çıktıyı bu şekilde alabilirsin

HTML Kodu:
<input onclick="test()" data-val="bir" type="checkbox" class="x" checked>
    <input onclick="test()" data-val="iki" type="checkbox" class="x">
    <input onclick="test()" data-val="uc" type="checkbox" class="x" ckecked>
    <input onclick="test()" data-val="dort" type="checkbox" class="x" checked>
    <input onclick="test()" data-val="bes" type="checkbox" class="x">


    <script type="text/javascript">
        function test() {
            var obje = new Object();
            var inp = document.getElementsByClassName('x').length;

            for (var i = 0; i < inp; i++) {
                var Vl = document.getElementsByClassName('x')[i].dataset.val;

                var Nm = document.getElementsByClassName('x')[i].checked;

                switch (Nm) {
                    case true:
                        Nm = 1;
                        break;
                    case false:
                        Nm = 0;
                        break;
                }

                obje[Vl] = Nm;

            }
            console.log(obje) //{bir: 1, iki: 0, uc: 0, dort: 1, bes: 1}

        }

    </script>
Abdullahx bunu beğendi.
  #3  
Okunmamış 25 Mart 2020, 15:25
Avatar Seçilmemiş
MW Aracı
 
Üyelik Tarihi: 03 Nisan 2019
Yaş / Cinsiyet: 25 / Erkek
Meslek: .
Konum: Trabzon
Ad, Soyad: Ab... Ka...
Mesajlar: 613
Beğeniler: 264 / 197
Ticaret: 1, 100%
Teşekkür ediyorum, mantığını kavradım sanırım.
  #4  
Okunmamış 25 Mart 2020, 15:26
Avatar Seçilmemiş
JavaScript 😍
 
Üyelik Tarihi: 28 Mart 2018
Yaş / Cinsiyet: 22 / Erkek
Meslek: Bilişim
Konum: Denizli
Ad, Soyad: Se... Ka...
Mesajlar: 395
Beğeniler: 79 / 59
Ticaret: 0, 0%
Rica ederim.
Cevap Yaz Favorilerime Ekle



Konuyu toplam 1 kişi okuyor. (0 üye ve 1 Ziyaretçi)
 
Seçenekler
Stil
Normal Normal

Geri Git   Forum > jQuery


Yetkileriniz
Konu açma yetkiniz: Yok
Cevap Yazma Yetkiniz Yok
Eklenti yükleme yetkiniz: Yok
Mesajınızı değiştirme yetkiniz: Yok

BB code: Açık
İfadeler: Açık
[IMG] Kodları: Açık
HTML kodu: Kapalı




Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şu anki Zaman: 23:18.