![](/img/trans.png)
[英]How to access elements from a javascript array for an email sent with PHP/HTML
[英]how to access added elements by php from javascript
我正在做一個小項目,這是我的第一個項目,因此我很難克服。 我正在為過濾的搜索創建動態列表,問題是我嘗試使用php添加元素,並且希望它們更改onclick的可見性,為此,我使用功能齊全的css代碼,但問題出在javascript,告訴我:
script.js:4未被捕獲的TypeError:無法在HTMLDivElement.onclick(afficherDept.php:4)的visibleToggle(script.js:4)處讀取null屬性'classList'
js_Code:
function visibilityToggle(id) {
var section = document.getElementById(id);
section.classList().toggle("showen");
}
這是添加元素的php代碼:--- $ sectionID由循環控制
echo '<div onclick="visibilityToggle('.$sectionID.');"id='.$id.'>'.'ID
'.$dept["id"].'. NOM:'. $dept["nom"].'.CHEF:'.$dept["chef"].'</div>';
echo '<section class="hidden" id=' . $sectionID . '>';
用一個元素的onclick
調用一個函數,然后使用document.getElementById
再次搜索相同的元素是沒有意義的...
相反,我會在PHP中為您的div添加一個類,並使用javascript添加點擊處理程序。 這樣,您就知道是誰調用了處理程序,並且可以直接切換CSS類。 (注意:尚未測試過,但我希望這個想法很明確)
的PHP
echo '<div class="clickablediv">simple example</div>';
JAVASCRIPT
let clickableDivs = document.getElementsByClassname("clickablediv")
for(let d of clickableDivs){
d.addEventListener("click", visibilityToggle)
}
function visibilityToggle(e) {
e.target.classList().toggle("showen");
}
表示錯誤的原因是從您的php代碼錯誤渲染了html標記。
您需要在傳遞給visibilityToggle
函數的參數前后加上引號。
'<div onclick="visibilityToggle(\''. $sectionID. '\')"'
接下來,classList是DOMTokenList
對象-不是函數。
因此,您應該像這樣訪問toggle
屬性:
section.classList.toggle("showen");
thanks for all your answers.
我解決了這個問題。 在我的js函數visibleToggle中,參數id是html元素而不是字符串。 我不知道為什么,但是有效
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.