javascript - w3schools - Como obter o elemento por nome de classe?




title javascript (3)

O nome da função DOM é, na verdade, getElementsByClassName , não getElementByClassName , simplesmente porque mais de um elemento na página pode ter a mesma classe, portanto: Elements .

O valor de retorno disso será uma instância NodeList ou um superconjunto do NodeList (FF, por exemplo, retorna uma instância de HTMLCollection ). De qualquer forma: o valor de retorno é um objeto de matriz:

var y = document.getElementsByClassName('foo');
var aNode = y[0];

Se, por algum motivo, você precisar do objeto de retorno como uma matriz, poderá fazer isso facilmente, devido à sua propriedade de tamanho mágico:

var arrFromList = Array.prototype.slice.call(y);
//or as per AntonB's comment:
var arrFromList = [].slice.call(y);

Como yckart sugeriu querySelector('.foo') e querySelectorAll('.foo') seria preferível, porém, como eles são, de fato, melhor suportados (93.99% vs 87.24%), de acordo com caniuse.com:

Esta questão já tem uma resposta aqui:

Usando JavaScript, podemos obter o elemento por id usando a seguinte sintaxe:

var x=document.getElementById("by_id");

Eu tentei seguir para obter elemento por classe:

var y=document.getElementByClass("by_class");

Mas resultou em erro:

getElementByClass is not function

Como posso obter um elemento pela sua classe?



você pode usar

getElementsByClassName

suponha que você tenha alguns elementos e aplique um nome de classe 'teste', então, você pode obter elementos como os seguintes

var tests = document.getElementsByClassName('test');

seu retorna uma instância NodeList ou seu superconjunto: HTMLCollection (FF).

Consulte Mais informação





dom