0

jQuery などの大規模なライブラリの助けを借りずに、いくつかの html/css 操作を実行しようとしています。

このコードを使用して、dom の準備ができていることを確認し、その中から関数を呼び出しています。

domready(function () {
  functionOne();
})

要素にクラスを削除/追加するなど、DOM に変更を加えるにはどうすればよいでしょうか。また、次のことを実行できるように (最後の行で) DOM に認識させるにはどうすればよいでしょうか。

<div id="myElement" class="active"></div>  

var linkElement = document.getElementById("myElement");
linkElement.className.replace(" active", " unactive");
elementByClass = document.getElementsByClassName("unactive")[0];
4

4 に答える 4

1

答えは、サポートしたいブラウザーによって異なります。最新のブラウザは、すでに多くの jQuery 機能をネイティブに実装しています (querySelector、classlist など)。

あなたのコードは良いスタートですが、replace は文字列をその場で変更せず、新しいものを返すため、機能しません。

<div id="myElement" class="active"></div>  

var linkElement = document.getElementById("myElement");
linkElement.className = linkElement.className.replace(" active", " unactive");
elementByClass = document.getElementsByClassName("unactive")[0];

classList を見て、クラスを操作するためのより堅牢な実装を確認してください: https://developer.mozilla.org/en-US/docs/Web/API/Element.classList

于 2013-10-09T13:36:12.780 に答える
0

DOM プロパティを再割り当てする必要があります。

たとえば、DOM 要素の classname プロパティを次のように割り当てることができます。

document.getElementById("myElement").className = "myClassName";

Element.setAttributeを使用して、他のすべての Dom 要素属性を設定できます。

于 2013-10-09T13:39:23.433 に答える
0

このコードを試して、DOM 要素にクラス名を割り当ててください。

document.getElementById("myElement").className = "myClassName";
于 2013-10-09T13:33:40.137 に答える