重複の可能性:
jQuery または `getElementByID` などの DOM メソッドが要素を見つけられないのはなぜですか?
HTML タグの前に、いくつかの php コードを実行します。この間、次のようないくつかの JavaScript 行を含める必要があります。
..php code...
..javascript code...
..php code..
<html>
<head>
</head>
<body>
<input type="file" name="file" id="file">
</body>
</html>
JavaScript コードでは、ファイル要素を非表示にしたいと考えています。
これは何もしません:
..php code
?>
<SCRIPT LANGUAGE="JavaScript">
document.getElementById('file').style.display = 'none';
</script>
<?php
...phpコード
そこにアラートを入れると表示されます。
その行をブロック内の関数に入れて<head></head>
、たとえばボタンの onClick イベントから呼び出すと、ファイル要素が非表示になるので、行は問題ありません。htmldocument.getLementByID
タグの外では無効なのでしょうか?それとも問題は、ページがまだ読み込まれていないため、その ID を持つ要素がないことでしょうか? この場合、どうすればよいですか?
解決
$int = 1; として PHP コードに変数を追加しました。(そして $int = 0; 別の場所ですが、まだページが読み込まれる前です)。次に、<head></head>
ブロックで:
window.onload = selectChoose;
function selectChoose()
{
if (<?php echo $int ?> == 0) {
showChoose();
}
else {
hideChoose();
}
}
function showChoose()
{
document.getElementById('file').style.display = 'inline';
}
function hideChoose()
{
document.getElementById('file').style.display = 'none';
}