为什么调用该函数时无法读取该函数?

时间:2020-07-02 09:42:56

标签: javascript html function parameters prompt

我是法国人(对不起我的英语) 网络开发中的新手,甚至还使用Javascript。

我创建了一个名为“ manyStyles ”的函数。

此功能必须使用 querySelector (“”)来抓取元素,然后对以前抓取的元素应用某种样式。功能非常简单,仅供试用和学习。

脚本的逻辑是:

-我创建了 4个变量,其中包含功能提示(“”); =>用户的价值 存放在这四个变量中。

let askForElement= prompt("Type some selectors, with CSS synthax.. example:h1,h2.. #test(id) or .test(class)");
let askingHeight= prompt("Type some value for the height");
let askingWidth= prompt("Type some value for the width");
let askingBackgroundColor= prompt("Type some value for the background-color ex:red,green,blue, #66a ..");

-我声明函数 manyStyles ,并在括号内添加4个参数(变量)(elementGrab,elem_height,elem_width,element_bg_color)=> elementGrab用于捕获像我之前解释的元素以及其他参数是样式的变量。

function manyStyles(elementGrab,elem_height,elem_width,element_bg_color){
    let grabbedElement;
    grabbedElement=document.body.querySelector(`${elementGrab}`);
    document.body.grabbedElement.style=`height:${elem_height}px;width:${elem_width}px;background-color:${element_bg_color};`;
}

=> 在body函数内部,我只创建了一个名为“ grabbedElement”的变量,用于存储要在下面的语句中被抓取的元素。

最后,我用她的名字调用该函数,并在参数中放入4个变量提示(第一步中创建的提示);

manyStyles(askForElement,askingHeight,askingWidth,askingBackgroundColor);

通常,该功能必须使用 querySelcetor 来获取元素,然后将其应用于样式。

但是由于某些原因无法正常工作

查看完整的代码将更能说明问题。

谢谢

let askForElement= prompt("Type some selectors, with CSS synthax.. example:h1,h2.. #test(id) or .test(class)");
let askingHeight= prompt("Type some value for the height");
let askingWidth= prompt("Type some value for the width");
let askingBackgroundColor= prompt("Type some value for the background-color ex:red,green,blue, #66a ..");


function manyStyles(elementGrab,elem_height,elem_width,element_bg_color){
    let grabbedElement;
    grabbedElement=document.body.querySelector(`${elementGrab}`);
    document.body.grabbedElement.style=`height:${elem_height}px;width:${elem_width}px;background-color:${element_bg_color};`;
}

manyStyles(askForElement,askingHeight,askingWidth,askingBackgroundColor);

2 个答案:

答案 0 :(得分:1)

您在except Exception内创建了一个变量,为它分配了grabbed元素,但尚未使用它。应该是这样,在其中更改了抓取元素。

let grabbedElement

您尝试从grabbedElement.style=`height:${elem_height}px;width:${elem_width}px;background-color:${element_bg_color};`; 获取styles,但那里不存在document.body.grabbedElement

答案 1 :(得分:0)

乍看之下,您正在做的是创建一个变量,但是随后您不使用此变量来设置样式。 document.body.grabbedElement等于undefined

function manyStyles(elementGrab,elem_height,elem_width,element_bg_color){
   let grabbedElement=document.body.querySelector(`${elementGrab}`);
   grabbedElement.style=`height:${elem_height}px;width:${elem_width}px;background-color:${element_bg_color};`;
}