![](/img/trans.png)
[英]Writing a function to change style.display property of a div?
[英]Function to change style.display of a div when another is clicked
我是javascript新手,從此站點上的一些代碼開始,我正在嘗試使用函數來更改div的可見性。
該功能是
var MyClass = document.getElementsByClassName("DivMainSH");
var myFunction = function() {
var SenderId = this.id;
var IdNums = SenderId.split("_");
var SubDivId = 'DivSubSH_' + IdNums[1];
var SubDiv = document.getElementById(SubDivId);
if (SubDiv.style.display = 'none'){
alert("I'm here"); // This works
SubDiv.style.display = 'blok'; // this doesn't work
document.getElementById(SubDivId).style.display = 'blok'; // this doesn't work
}else{
document.getElementById(SubDivId).style.display = 'none';
}
};
for (var i = 0; i < MyClass.length; i++) {
MyClass[i].addEventListener('click', myFunction, false);
}
該代碼有效,我看到了警報,但隱藏的div仍處於隱藏狀態。
我嘗試了許多不同的方法,但是沒有人起作用。
我敢肯定這是一個愚蠢的初學者錯誤,但自三天以來,我一直堅持下去 。
編輯
錯字校正后,“其他”部分仍然無法正常工作
我用來編寫html的php代碼如下:
$Des_N_Vals=array("FirstName"=>"FirstDescr",
"SecondName"=>"SecondDescr",
"ThirdName"=>"ThirdDescr");
DivShowHide_Insert('Select options', $Des_N_Vals);
Function DivShowHide_Insert($Name, $Arr_NameVal_Descr){
$Name=str_replace(' ', '_', $Name);
$Num=0;
foreach($Arr_NameVal_Descr as $Val => $Descr) {
echo '<div class="DivMainSH" id="DivMainSH_'.$Num.'">
<h3>
<input type="checkbox" name="'.$Name.'['.$Num.']" ';
if (isset($_POST[$Name][$Num]) && $_POST[$Name][$Num]==$Val) echo ' checked="checked" ';
echo 'value="'.$Val.'">'.$Val.'</input>
</h3>
<div class="DivSubSH" id="DivSubSH_'.$Num.'" style="display:none;">
'.$Descr.'
</div>
</div>';
$Num++;
}
echo '</div>';
}
您似乎拼錯了“障礙”。
SubDiv.style.display = 'blok';
document.getElementById(SubDivId).style.display = 'blok';
更改為:
SubDiv.style.display = 'block';
document.getElementById(SubDivId).style.display = 'block';
而且,您實際上是在以下if語句中為SubDiv.style.display
分配一個值:
if (SubDiv.style.display = 'none') {
這將導致條件始終為true,因為分配永遠不會失敗,因此div的顯示樣式始終為none
,因此您的div最初是隱藏的,但再也不會返回。
if (SubDiv.style.display == 'none') {
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.