根据作为参数传递给javascript的值更改div样式
下面是我尝试过的javascript根据作为参数传递给javascript的值更改div样式,javascript,jquery,html,css,onclick,Javascript,Jquery,Html,Css,Onclick,下面是我尝试过的javascript 功能切换(单击\u id,名称){ 警报(单击了\u id); 警报(名称); var text=document.getElementById(“单击的_id”); var ele=document.getElementById(“名称”); 警报(元素样式显示); 如果(ele.style.display==“块”){ ele.style.display=“无”; text.innerHTML=“+”; text.value=“+” } 否则{ ele
功能切换(单击\u id,名称){
警报(单击了\u id);
警报(名称);
var text=document.getElementById(“单击的_id”);
var ele=document.getElementById(“名称”);
警报(元素样式显示);
如果(ele.style.display==“块”){
ele.style.display=“无”;
text.innerHTML=“+”;
text.value=“+”
}
否则{
ele.style.display=“块”;
text.innerHTML=“-”;
text.value=“-”
}
返回
}
只需删除变量名周围的引号即可
var text = document.getElementById(clicked_id);
var ele = document.getElementById(name);
var text = document.getElementById(clicked_id);
var ele = document.getElementById(name);
问题是:
var text = document.getElementById("clicked_id"); // func arg is in string format
var ele = document.getElementById("name"); // func arg is in string format
你必须不加引号地使用它
var text = document.getElementById(clicked_id);
var ele = document.getElementById(name);
但是有一种更好的方法,你可以这样做:
<input type="button" id="displayText1" onClick="toggle(this)" value="+" style="margin-left:86%;" name="toggleText1">
<input type="button" id="displayText2" onClick="toggle(this)" value="+" style="margin-left:86%;" name="toggleText2">
function toggle(el) {
var text = el;
var ele = document.getElementById(el.name);
if(ele.style.display == "block") {
ele.style.display = "none";
text.innerHTML = "+";
text.value="+"
} else {
ele.style.display = "block";
text.innerHTML = "-";
text.value="-"
}
}
由于您不需要返回任何内容,它只是一个dom操作的东西,因此您可以删除return
语句
我建议您避免使用内联事件处理程序,因此,如果您对不引人注目的javascript感兴趣,那么您可以使用toggle()
函数将此事件处理程序放置在js文件中,您可以使用它:
document.getElementById('displayText1').addEventListener('click', function(){
toggle(this);
});
document.getElementById('displayText2').addEventListener('click', function(){
toggle(this);
});
或使用querySelectorAll
方法:
document.querySelectorAll('#displayText1, #displayText2').addEventListener('click', function(){
toggle(this);
});
变量“clicked_id”和“name”周围的引号使它们充当字符串。没有具有这些id的元素。 只要去掉引号,事情就会解决