プロが教えるわが家の防犯対策術!

classNameにaddメゾットを追加したいのですがエラーが出てしまいます。

Element.className.prototype.add = function(className) { … };

としたところ、「Element.className has no properties」となってしまいます。

どうしたら、classNameにメゾットを追加できるのでしょうか?

A 回答 (4件)

Element.className.add = function(className) { … };


こうじゃなく?

この回答への補足

いえ、それでもエラーになってしまいます。
Element.className.add
Element.prototype.className.add
Element.className.prototype.add
Element.prototype.className.prototype.add
などいろいろやってみてるのですがどれもエラーになってしまいます。

補足日時:2007/12/26 18:02
    • good
    • 0

<!DOCTYPE html>


<html>
<head>
<title></title>
<style type="text/css">
.style1{background-color:red;}
.style2{color:blue;}
.style3{}
</style>
<script type="text/javascript">
// DOCTYPE宣言とかが無茶苦茶に見えるが,これがHTML 5の正式なDOCTYPE宣言だから
// http://www.w3.org/html/wg/html5/#the-doctype
//なんでそんなもの使おうとしたかというと,Interface ElementのclassListプロパティを使えないかなーと企んだから。
//http://www.w3.org/html/wg/html5/#htmlelement
//結果はMinefield,Opera 9.5,Safari 3.0.4で全滅。IEは期待できないと判断して未検証。
function body_Onload(element1){
//俺はEcmascriptとか詳しくないから質問者さんの記述が正しいか判断する能力がない。
//以下のような記述では駄目なのだろうか?
//ただし,その性質上,全ての文字列に対し,関数が付与されるため,使いにくいと思う。

String.prototype.add = function(className) { alert(className);};
}

function paragraph_clicked(element1){
document.getElementById(element1).className.add("nyan");
}
//リゾットやリゾートじゃないんだからメゾットとは言わない。俺も昔言ってたけど。正しくはmethod(メソッド)ね。
</script>
</head>
<body onload="body_Onload();">
<p id="uga" onclick="paragraph_clicked(this.id);">ほげ</p>
</body>
</html>
    • good
    • 0

ええと それじゃこうだと?



Element.className.prototype = { add : function (className) {} };


というか
Element.classNmae自体は存在するの?
Elementしか無くていきなり作るのはできないけどそこは大丈夫?
    • good
    • 0

**** has no properties


のエラーは****がNullかUndefinedであるパターンが多いですね。
当方はCSSを弄るときとかtypoしてよくハマります。

このエラーが出たらElement.classNameがちゃんと初期化されているか
確認すると良いですよ。
    • good
    • 0
この回答へのお礼

いろいろ調べたところ、無理っぽかったのであきらめます。
回答ありがとうございました。

お礼日時:2007/12/27 11:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!