根据作为参数传递给javascript的值更改div样式

根据作为参数传递给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

下面是我尝试过的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.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的元素。 只要去掉引号,事情就会解决