1

JavaScriptとjQueryを使用して、本文からHTMLページの先頭にCSSを追加する2つの方法を見てきましたが、どちらが望ましいですか?

$('head').append("<style type='text/css'> my CSS <\/script>");

また

  var styleElement = document.createElement('style');
  var styleText = 'my CSS';
  var headElements = document.getElementsByTagName('head');
  styleElement.type = 'text/css';
  if (headElements.length == 1) {
    headElements[0].appendChild(styleElement);
  } else if (document.head) {
    document.head.appendChild(styleElement);
  }
  if (styleElement.styleSheet) { // IE
      styleElement.styleSheet.cssText = styleText;
  } else { // Other browsers
      var textNode = document.createTextNode(styleText);
      styleElement.appendChild(textNode);
  }

明らかに最初のものははるかに短いですが、それはあまり受け入れられていませんか?

4

3 に答える 3

1

最初のオプションは、CSSをヘッドセクションに追加するための許容可能な方法です。JQueryを使用すると、最もクロスブラウザー互換のソリューションが提供されます。

于 2012-05-10T13:47:41.360 に答える
1

読みやすさとパフォーマンスの問題だと思います。

人々は、生のJavascriptの方法で処理を行う方が、jQueryを使用する場合よりも高速であると主張します(通常は正しいでしょう)。jQueryは、実行していることから生のJavascript呼び出しを抽象化して、優れた構文と利便性を提供します。つまり、jQueryを使用すると、コマンドが内部をジグザグに移動して、実行中の処理を生のJavascriptコードに「変換」する部分に到達するため、追加のオーバーヘッドが発生します。

しかし、繰り返しになりますが、生のJavascriptコードを書くことは、時々面倒であるだけでなく(そのコードをすべて見てください!)、クロスブラウザーの問題(jQueryが正規化しようとする)の影響を受けやすく、読みにくくなる可能性があります。未経験者。パフォーマンス上のメリットは本当に価値がありますか?

正直なところ、それはあなたがどこで何をしようとしているのかという問題です。ここでは、生のJavascriptを使用するメリットはごくわずかだと思います。jQueryでそれをヒットします。

于 2012-05-10T13:49:27.930 に答える
1

どういう意味acceptedですか?jQueryを使用する場合、コードには1行しかありませんが、jQueryフレームワークは、実装の2番目のアイデアで述べたのと同じように動作する可能性があります。すでにjQueryを使用している場合は、jQueryに固執したいと思うかもしれません。ただし、その目的でのみ使用している場合は、フレームワーク全体を含めないでください。

于 2012-05-10T13:49:58.130 に答える