请告诉我下面差X =的document.getElementById( “ID”)。的className =&X =的document.getElementById( “ID”),x.className =
<div class="w3-dropdown-click">
<button class="w3-btn" onclick="clickDrp()">Hover Over me</button>
<div class="w3-dropdown-content w3-animate-zoom w3-bar-block" id="cont">
<a href="#" class="w3-bar-item w3-button">SomeLink1</a>
<a href="#" class="w3-bar-item w3-button">SomeLink2</a>
<a href="#" class="w3-bar-item w3-button">SomeLink3</a>
<a href="#" class="w3-bar-item w3-button">SomeLink4</a>
</div>
</div>
<script type="text/javascript">
function clickDrp(){
var x = document.getElementById("cont").className;
if(x.search("w3-show") == -1)
x += " w3-show";
else
x = x.replace(" w3-show","");
}
</script>
和
在码的差<div class="w3-dropdown-click">
<button class="w3-btn" onclick="clickDrp()">Hover Over me</button>
<div class="w3-dropdown-content w3-animate-zoom w3-bar-block" id="cont">
<a href="#" class="w3-bar-item w3-button">SomeLink1</a>
<a href="#" class="w3-bar-item w3-button">SomeLink2</a>
<a href="#" class="w3-bar-item w3-button">SomeLink3</a>
<a href="#" class="w3-bar-item w3-button">SomeLink4</a>
</div>
</div>
<script type="text/javascript">
function clickDrp(){
var x = document.getElementById("cont");
if(x.className.search("w3-show") == -1)
x.className += " w3-show";
else
x.className = x.className.replace(" w3-show","");
}
</script>
在第二个下拉菜单中工作正常。 在第一种情况下,即使x是全局变量也不行。
我是新来的JavaScript,我无法找出原因。 有人可以推理吗?
PS:我用W3-CSS
如果x是一个全局变量? –
@PrajvalM没有区别。 – Pointy
@PrajvalM,这是无关紧要的。当你给一个变量赋值(局部,全局或某个对象的属性 - 无所谓)时,你正在分配一个副本。字符串是原始值(不可变)。改变'className'属性值的唯一方法是给它分配一个新的字符串。你不能通过赋值给一个变量来做到这一点,它需要到'className'属性。 – trincot