請告訴我下面差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