Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我怎样才能避免don';不要用这个函数重复你的自治_Javascript_Coding Efficiency - Fatal编程技术网

Javascript 我怎样才能避免don';不要用这个函数重复你的自治

Javascript 我怎样才能避免don';不要用这个函数重复你的自治,javascript,coding-efficiency,Javascript,Coding Efficiency,他说, 我想知道你对如何更好地编写这段代码的看法 如果你点击star3按钮,它会变成一颗黄色的星星,下面的星星也是黄色的。星星3上面的星星是灰色的 这是我得到的,也是我需要的,但我想知道我如何才能在代码中更高效 var-star=document.getElementById(“star-0”); var star1=document.getElementById(“star-1”); var star2=document.getElementById(“star-2”); var star3

他说,

我想知道你对如何更好地编写这段代码的看法

如果你点击star3按钮,它会变成一颗黄色的星星,下面的星星也是黄色的。星星3上面的星星是灰色的

这是我得到的,也是我需要的,但我想知道我如何才能在代码中更高效

var-star=document.getElementById(“star-0”);
var star1=document.getElementById(“star-1”);
var star2=document.getElementById(“star-2”);
var star3=document.getElementById(“star-3”);
var star4=document.getElementById(“star-4”);
var img='url(img/star.png)';
var img2='url(img/star2.png)';
star4.addEventListener('click',function(){
star.style.backgroundImage=img2;
star1.style.backgroundImage=img2;
star2.style.backgroundImage=img2;
star3.style.backgroundImage=img2;
star4.style.backgroundImage=img2;
});
star3.addEventListener('click',function(){
star.style.backgroundImage=img2;
star1.style.backgroundImage=img2;
star2.style.backgroundImage=img2;
star3.style.backgroundImage=img2;
star4.style.backgroundImage=img;
});
star2.addEventListener('click',function(){
star.style.backgroundImage=img2;
star1.style.backgroundImage=img2;
star2.style.backgroundImage=img2;
star3.style.backgroundImage=img;
star4.style.backgroundImage=img;
});
star1.addEventListener('click',function(){
star.style.backgroundImage=img2;
star1.style.backgroundImage=img2;
star2.style.backgroundImage=img;
star3.style.backgroundImage=img;
star4.style.backgroundImage=img;
});
star.addEventListener('click',function(){
star.style.backgroundImage=img2;
star1.style.backgroundImage=img;
star2.style.backgroundImage=img;
star3.style.backgroundImage=img;
star4.style.backgroundImage=img;

});
给所有的星星一个公共类,如
class=“stars”
。然后做:

var star1=document.querySelector('.stars')

从那里,您可以将事件侦听器附加到它们,而不是单独编写每个事件侦听器


在click listener内部,将当前事件目标和所有id低于其自身的事件目标的背景设置为
img2

似乎您正在尝试实施星级评级。如果您坚持只使用JS,而不在HTML中使用任何smarts或元数据。以下是我将其简化为的函数:

var-star=document.getElementById(“star-0”);
var star1=document.getElementById(“star-1”);
var star2=document.getElementById(“star-2”);
var star3=document.getElementById(“star-3”);
var star4=document.getElementById(“star-4”);
var img='url(img/star.png)';
var img2='url(img/star2.png)';
功能更新(额定值){
var stars=[星,星1,星2,星3,星4];
对于(变量i=0;i});使用一个函数添加所有星星,并通过单击事件调用它。请输入星星的id。检查if语句并在匹配时停止。

创建一个包含所有共享内容的新函数。对所有变量使用参数。代码段不是working@osmanraifgunesJS正在工作。他试图将单击附加到的HTML不在这里。我投票将此问题作为离题题结束,因为它是关于改进工作代码的。@Pabs123:它处于临界状态。可能更适合你。太好了!我会想办法尝试这种编码方式。谢谢