8

ウェブサイトを作ろうとしていますが、問題があります。Chrome で実行すると、「未定義のプロパティ 'backgroundColor' を設定できません」というメッセージが表示されます。なぜこれを取得しているのかわかりません。私の変数は配列ではありません(単なるIDです)。2時間グーグルで調べましたが、何も役に立ちません。

ここに私のHTMLコードがあります:

    $(document).ready
    (
	function()
	{
		$("#go").bind("click", remonte)
    }
    );

    function remonte(){	
	$("#menu").animate({marginTop: "-460"}, 500);
	$("#ar").animate({marginTop: "120"}, 500);
	$("#reste").animate({height: "500", marginTop: "-50"},400);
	$("#go").remove();	
	setTimeout(charge, 510); 	
    }

    function charge(){
        $('#reste').load("about.html",'',montreNouveauContenu);
        $("#surmenu").style.backgroundColor="transparent"; //HERE
        $("#menu_jaune").animate({width: "900"}, 500);
    }

    function montreNouveauContenu() {  
	$('#content').show('normal');  
    }  
    function suppr(){
	$("#dev").remove();
	$("#reste").remove();
	$("#content").remove();
	$("#bandeau_graphisme").animate({height: "255"},500);
    }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
	<head>
		<title>Folio</title>
		<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
		<link rel="stylesheet" type="text/css" href="style.css"/>
		<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
		<script type="text/javascript" src="anim2.js"></script>		 
	</head>
	<body>
		<div id="tout">
			<img id="menu_jaune" src="https://dummyimage.com/150x200/000/fff" alt="le menu"/></td>
			<div id="bandeau_graphisme">
				<img id="dev" src="https://dummyimage.com/150x200/000/fff" alt="image de couverture du site"/>
			</div>
			<div id="surmenu">
				<div id="menu">
					<img id="ar" src="https://dummyimage.com/150x200/000/fff" alt="ar"/>
				</div>
			</div>
			<div id="go">
				<p id="wtf">HERE WE GO! Click Here</p>
			</div>
			<div id="reste">
			</div>
		</div>
	</body>
</html>

前もって感謝します。

4

2 に答える 2

18

styleこれは、jQuery オブジェクトにプロパティがないためです。

    // ---------v----???
$("#surmenu").style.backgroundColor="transparent"; //HERE

次のようになります。

$("#surmenu").css("backgroundColor", "transparent");

DOM API を使用したい場合は、従来の DOM 選択を行うことができます。

document.getElementById("surmenu").style.backgroundColor="transparent";
于 2012-10-31T20:27:17.103 に答える
3

これは要素ではなく jQuery オブジェクトであるため、styleプロパティはありません。あなたはこれを求めている:

$("#surmenu")[0].style.backgroundColor="transparent"; //HERE

またはこれ...

$("#surmenu").get(0).style.backgroundColor="transparent"; //HERE

またはこれ...

$("#surmenu").css( 'background-color', 'transparent' ); //HERE
于 2012-10-31T20:27:20.857 に答える