создавать функцию с аргументом как селектором DOM

Я нуждаюсь в том, чтобы создать функцию с аргументом, который соответствовал бы селектору DOM, что-то подобное función (argumento) {código ejecutable}; argumento = algún selector как querySelectorAll(".x")

У меня есть код, но он ничего не делает.

x = document.querySelectorAll(".primero");

function myFunction(x) {
    var x = document.querySelectorAll(".x");
    for (var i = 0; i < x.length; i++) {
      x[0].style.backgroundColor = "red";
    }
<!DOCTYPE html>
<html>

<body>

  <h2 class="encabezar">Este es un encabezado con la clase ="encabezar"</h2>
  <p class="primero">Primer párrafo con la clase ="primero"</p>
  <p class="segundo">Segundo párrafo con la clase ="segundo"</p>
  <p class="tercero">Tercer párrafo con la clase ="tercero"</p>


  <button onclick="myFunction()">Enviar</button>


</body>

</html>
2
задан 29.08.2016, 23:35
3 ответа

Ты не так далеко, только он состоит в том, чтобы иметь в виду, когда, и как соглашаться параметры объекта:

function myFunction(x) {
    for (var i = 0; i < x.length; i++) {   
      x[0].style.backgroundColor = "red";
    }
}
<!DOCTYPE html>
<html>
<body>

<h2 class="encabezar">Este es un encabezado con la clase ="encabezar"</h2>
<p class="primero">Primer párrafo con la clase ="primero"</p> 
<p class="segundo">Segundo párrafo con la clase ="segundo"</p> 
<p class="tercero">Tercer párrafo con la clase ="tercero"</p> 


<button onclick="myFunction(document.querySelectorAll('.primero'))">Enviar</button>


</body>
</html>
2
ответ дан 24.11.2019, 13:32

<script>
function myFunction() {
    var respuesta = document.getElementById("clase").value;
    colorear (respuesta);
}

function colorear(x)  {
    var z = document.querySelectorAll('.' + x);
    for (var i = 0; i < z.length; i++) {   
    z[i].style.backgroundColor = "red";
    }
}
</script>
<!DOCTYPE html>
<html>
<body>

<h2 class="encabezar">Este es un encabezado con la clase ="encabezar"</h2>
<p class="primero">Primer párrafo con la clase ="primero"</p> 
<p class="segundo">Segundo párrafo con la clase ="segundo"</p> 
<p class="tercero">Tercer párrafo con la clase ="tercero"</p> 

<p>Elige una clase a destacar</p>
<input type = "text" name = "valor" value = "" id = "clase">

<button onclick = "myFunction()">Enviar</button>

</body>
</html>
1
ответ дан 24.11.2019, 13:32

Если entendГ - хорошо ты ищешь что-то как это

function myFunction(x) {
  var z = document.querySelectorAll('.' + x);
  for (var i = 0; i < z.length; i++) {
    z[0].style.backgroundColor = "red";
  }
}
<h2 class="encabezar">Este es un encabezado con la clase ="encabezar"</h2>
<p class="primero">Primer párrafo con la clase ="primero"</p>
<p class="segundo">Segundo párrafo con la clase ="segundo"</p>
<p class="tercero">Tercer párrafo con la clase ="tercero"</p>
<button onclick="myFunction('primero')">Enviar</button>

, Помни, что согласно правилам JavaScript переменные, которые ты объявляешь в closures внутренние, "скрывают" переменные внешних closures, но не sobreescriben

var a = 10;

function fn() {
  var a = 20;
  console.log('interno', a);
}

fn();
console.log('externo', a);

Поэтому делать

var x = document.querySelectorAll(".primero");
function myFunction(x) {

относится к двум отличным переменным.

2
ответ дан 24.11.2019, 13:32
  • 1
    Сейчас s и # 237;. Он нуждался в том, чтобы вернуть элемент DOM для despu и # 233; s присоединять это к funci как аргумент и # 243; n в javascript. Я присоединяю c и # 243; я говорю м и # 225; s достигни. – RTLM-7 02.09.2016, 23:38
  • 2
    @RTLM-7 не забывай проголосовать за, если ты sirvi и # 243; ответ – devconcept 03.09.2016, 00:36