2011-05-05 9 views
25

Bir süre önce javascript, üzerinde bir test yapıyordum ve tüm elemanların metnini almak için bir kod ile çaldı, Şimdi böyle bir şey yapmaya çalışıyordum ama tüm elemanlar belirli bir türe göre, örneğin tüm elemanlar type = "text" Javascript'te bunu yapmanın bir yolu var mı yoksa jquery kullanmalı mıyım? Düz yaşındaki JavaScript'inizdeJavascript'e yazarak ögelere erişim

var xx = document.getElementsByClassName("class"); 
for (i=0;i<xx.length;i++){ 
    var str=xx[i].innerHTML; 
      alert(str); 
} 

Thanks-

+2

document.getElementsByTagName (tagname) dosyasını deneyebilirsiniz. Başka bir şey - iQuery javascript, jQuery ile mümkün olan her şey onsuz da mümkündür. – Jakub

cevap

42

bunu yapabilirsiniz: jQuery yılında

var inputs = document.getElementsByTagName('input'); 

for(var i = 0; i < inputs.length; i++) { 
    if(inputs[i].type.toLowerCase() == 'text') { 
     alert(inputs[i].value); 
    } 
} 

, sadece yapardın:

// select all inputs of type 'text' on the page 
$("input:text") 

// hide all text inputs which are descendants of div class="foo" 
$("div.foo input:text").hide(); 
+0

Gönder düğmesini almak için bunu kullandım. –

1

cızırtı seçici motoru (ne güçler JQuery) bunun için mükemmel bir şekilde tasarlanmıştır:

Eğer şanslıysanız ve son tarayıcılar için sadece bakım gerekiyorsa
var elements = $('input[type=text]'); 

Ya

var elements = $('input:text'); 
35

, şunları kullanabilirsiniz:

document.querySelectorAll('input[type=text]') 

"Son" değil IE6 ve IE7

+4

Bu yöntem şu anda gerçekten iyi destekleniyor: http://caniuse.com/#search=querySelectorAll – thohl

1
var inputs = document.querySelectorAll("input[type=text]") || 
(function() { 
    var ret=[], elems = document.getElementsByTagName('input'), i=0,l=elems.length; 
    for (;i<l;i++) { 
     if (elems[i].type.toLowerCase() === "text") { 
      ret.push(elems[i]); 
     } 
    } 

    return ret; 
}()); 
demektir