• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

121
Views
cómo omitir el primer argumento pero dar el segundo argumento en JavaScript

Esta función createHtmlElement() creará de manera predeterminada una etiqueta <div> en el cuerpo sin nada como contenido dinámicamente. Pero si el usuario no proporciona el argumento parentId y salta al parámetro elementName usando una coma (como esta { createHtmlElement("", "div", "hello", "append") } ), entonces dice: "DOMException no detectada: error para ejecutar 'querySelector' en 'Documento': el selector proporcionado está vacío".

 function createHtmlElement(parentId = "body" , elementName = "div", elementContent = "", choice ="append"){ let parent = document.querySelector(`${parentId}`) || document.body; //parent element (parentId) let newElement = document.createElement(`${elementName}`)//created element (newElementName) newElement.textContent = `${elementContent}`;//element content (newElementContent) console.log(parent) console.log(newElement) parent.appendChild(newElement); } createHtmlElement("body" , "h2", "this is h2 tag")//this works totally fine createHtmlElement("", "h2","this is h2 tag")// console says the provided selector is empty

Dígame cómo puedo dar una funcionalidad que si no doy el primer argumento pero puedo dar el segundo argumento y la función se ejecuta normalmente. porque si crea 20 o 30 etiquetas y escribe "cuerpo" en cada línea, consume mucho tiempo y espacio, ¿cómo puedo omitir el primer argumento y dar valor al segundo argumento?

about 3 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Mueva parentId al final, luego puede omitirlo

 function createHtmlElement(elementName = "div", elementContent = "", choice = "append", parentId = "body") { let parent = document.querySelector(`${parentId}`) || document.body; //parent element (parentId) let newElement = document.createElement(`${elementName}`) //created element (newElementName) newElement.textContent = `${elementContent}`; //element content (newElementContent) console.log(parent) console.log(newElement) parent.appendChild(newElement); } createHtmlElement("h2", "this is h2 tag", "body") //this works totally fine createHtmlElement("h2", "this is h2 tag") // now it works

Si no desea moverlo, debe pasar undefined . Tenga en cuenta que null no funcionará

 function createHtmlElement(parentId = "body", elementName = "div", elementContent = "", choice = "append") { console.log(parentId) let parent = document.querySelector(`${parentId}`) || document.body; //parent element (parentId) let newElement = document.createElement(`${elementName}`) //created element (newElementName) newElement.textContent = `${elementContent}`; //element content (newElementContent) console.log(parent) console.log(newElement) parent.appendChild(newElement); } createHtmlElement("body", "h2", "this is h2 tag", "body") //this works totally fine createHtmlElement(undefined, "h2", "this is h2 tag") // now it works

Alternativamente, pase un objeto y extiéndalo

 function createHtmlElement(parms) { const { parentId, elementName, elementContent, choice } = parms; let parent = document.querySelector(`${parentId || "body"}`); // if passed use parentId let newElement = document.createElement(`${elementName}`) //created element (newElementName) newElement.textContent = `${elementContent}`; //element content (newElementContent) console.log(parent) console.log(newElement) parent.appendChild(newElement); } createHtmlElement({"parentId": "body", "elementName":"h2", "elementContent": "this is h2 tag"}) createHtmlElement({"elementName":"h2", "elementContent": "this is h2 tag"})

about 3 years ago · Juan Pablo Isaza Report

0

Simplemente puede pasar indefinido para omitir un argumento para JavaScript:

 function createHtmlElement(parentId = "body", elementName = "div", elementContent = "", choice = "append") { console.log(parentId) } createHtmlElement(undefined, "h2", "this is h2 tag")

about 3 years ago · Juan Pablo Isaza Report

0

agregue debajo de la línea uno la primera línea de su función createHtmlElement .

 if(!parentId){ parentId = "body" } 

 function createHtmlElement(parentId = "body", elementName = "div", elementContent = "", choice = "append") { if (!parentId) { parentId = "body" } let parent = document.querySelector(`${parentId}`) || document.body; //parent element (parentId) let newElement = document.createElement(`${elementName}`) //created element (newElementName) newElement.textContent = `${elementContent}`; //element content (newElementContent) console.log(parent) console.log(newElement) parent.appendChild(newElement); } createHtmlElement("", "h2", "this is h2 tag") // console says the provided selector is empty

Sin embargo, le sugiero que cambie su argumento a un objeto en lugar de múltiples argumentos:

 function createHtmlElement(options) { if(!options){ throw new Error("options is missing") } let parentId = options.parentId || "body" let elementName = options.elementName let elementContent = options.elementContent let choice = options.choice // following by your logics }

Entonces, cuando llama a la función, simplemente puede hacer esto en lugar de ingresar una cadena vacía:

 createHtmlElement({ parentId: "body" , //just remove this property if you don't want to do this step elementName: "div", elementContent: "", choice: "append })

Esto lo ayuda a reconocer qué argumento es para qué propósito cuando llama a la función, especialmente cuando desea usarla tantas veces, en el futuro puede olvidar el segundo o tercer argumento para qué propósito, entonces tiene que seguir desplazándose Volvamos a la función para comprobar cuál es el propósito del argumento.

about 3 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error