我不是开发人员,但我一直在讨论这个问题。希望你能帮忙
我有几个带有ID的div:s通过php动态赋予它们。我有一个函数,通过一个隐藏和显示div的复选框调用。我现在要做的是从文档中获取div ID并将它们放入函数中。
我有点复制来自不同论坛的代码,如果我很难编写div名称,它就可以了。不知道我现在在做什么,任何帮助都会受到赞赏。
这就是我所拥有的
将id分配给div:
$a .= "<div id='$go[media_caption]" . $i . "'>";
功能:
var editorial = [id^='editorial']);
function visiblox(arrDiv, hs) {
var disp = (hs) ? 'none' : 'block';
for(var x = 0; x < arrDiv.length; x++) {
document.getElementById(arrDiv[x]).style.display = disp;
}
}
function chk(what, item) {
if(item) {
visiblox(what, false);
} else {
visiblox(what, true);
}
}
调用函数:
<input type='checkbox' onclick='chk(editorial, this.checked);' checked> Editorial</p>
答案 0 :(得分:0)
你可以让你的PHP输出数组供你的Javascript使用吗?当PHP输出ID时,它还会将它们添加到Javascript数组语法中的字符串中。像这样:
$a .= "<div id='$go[media_caption]" . $i . "'>";
$jsIDs .= "'$go[media_caption]',";
然后在文件末尾,就在PHP文件关闭</body>
和</html>
标记之前,将数组作为脚本输出:
$jsIDs = substr($jsIDs, 0, strlen($jdIDs)-1); // strip off the last comma
$jsIDs = "<script type='text/javascript'>var idArr = [" . $jsIDs . "];</script>";
echo($jsIDs);
然后在javascript中,您不需要在DOM中查找ID。你可以使用数组(在我的例子中,我称之为idArr
)。
更新:Martin说PHP输出的ID有时以“编辑”开头,有些则以其他东西开头。要仅收集以“社论”开头的那些,请将上面以$jsIDs .=
开头的行更改为以下两行:
if ( substr($go[media_caption], 9) == "editorial" )
$jsIDs .= "'$go[media_caption]',";
这应该可以解决问题。