jquery

2016-04-07 8 views
0

ile html öğelerinden nitelik değerleri alın Biraz sıkışmış durumdayım. Bir jquery seçici kullanarak "for" öznitelik değerini almak istiyorum. Konsola başarılı bir şekilde giriş yapabilmem de, etiketler üzerinde yalnızca "for" özniteliğinin değerini nasıl alabilirim/kaydedebilirim? Ben console.log(labels['for']) denedim ama bu gitmek için yol değil. Aşağıda ilgili kod.jquery

HTML:

<div class="inline-group" id="album_set-group"> 
    <h2>Albums</h2> 
    <div class="inline-related"> 
    <h3><b>Album:</b>&nbsp;<span class="inline_label">#1</span></h3> 
    <fieldset class="module aligned "> 
     <div class="form-row field-name"> 
     <div> 
      <label for="id_album_set-0-name">Name:</label> <input id="id_album_set-0-name" maxlength="100" name="album_set-0-name" type="text"> 
     </div> 
     </div> 
     <div class="form-row field-release_date"> 
     <div class="date-field"> 
      <label for="id_album_set-0-release_date">Release date:</label> <input id="id_album_set-0-release_date" name="album_set-0-release_date" type="text"> 
     </div> 
     </div> 
    </fieldset> 
    </div> 
</div> 

JAVASCRIPT:

$(document).ready(function() { 
    var labels = $("#album_set-group").find("label"); 
    console.log(labels); 
}); 
+0

tüm etiketlerin niteliğini elde etmek için, döngü 'kullanmak/.each' ..' .attr (ATTR_NAME) kullanarak zorunda kalacak ' – Rayon

cevap

1

kullanabilirsiniz sadece yöntem .attr(). Durumda da

$("#album_set-group").find("label").each(function() { 
    console.log($(this).attr('for')); 
}); 
+0

CMedina bana atfen daha tam bir cevap verdi ve bir jsfiddle, bu yüzden cevabını kabul ettim. Sana bir yardımda bulundum. –

1

Düz JavaScript gibi bir şey yapabilirsiniz:

  • dizisi içerisinden Array.prototype.slice.call()
  • yineleme ile bir diziye querySelectorAll()
  • dönüştürme nodelist ile nodelist içine <label> s toplayın ve her yinelemede, for özniteliğini almak için getAttribute() kullanın. Her bir for numaralı yeni diziye
  • push.
  • console.log(newArray)

Pasaj

var labelList = document.querySelectorAll('label'); 
 
var labelArray = Array.prototype.slice.call(labelList); 
 
var total = labelList.length; 
 
var forArray = []; 
 
for (var i = 0; i < total; i++) { 
 
    var forAttr = labelArray[i].getAttribute('for'); 
 
    forArray.push(forAttr); 
 
} 
 

 
console.log('for: ' + forArray);
<script src="http://gh-canon.github.io/stack-snippet-console/console.min.js"></script> 
 
<div class="inline-group" id="album_set-group"> 
 
    <h2>Albums</h2> 
 
    <div class="inline-related"> 
 
    <h3><b>Album:</b>&nbsp;<span class="inline_label">#1</span></h3> 
 
    <fieldset class="module aligned "> 
 
     <div class="form-row field-name"> 
 
     <div> 
 
      <label for="id_album_set-0-name">Name:</label> 
 
      <input id="id_album_set-0-name" maxlength="100" name="album_set-0-name" type="text"> 
 
     </div> 
 
     </div> 
 
     <div class="form-row field-release_date"> 
 
     <div class="date-field"> 
 
      <label for="id_album_set-0-release_date">Release date:</label> 
 
      <input id="id_album_set-0-release_date" name="album_set-0-release_date" type="text"> 
 
     </div> 
 
     </div> 
 
    </fieldset> 
 
    </div> 
 
</div>