从文档中动态获取div id

时间:2011-04-14 19:15:04

标签: php javascript

我不是开发人员,但我一直在讨论这个问题。希望你能帮忙

我有几个带有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>

1 个答案:

答案 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]',";

这应该可以解决问题。