4

この変数があり、それにクラスを追加したいと考えています。私はこの方法を試しましたが、これは間違いなく機能していません

var someVar = '<i class="firstClass"></i>';// Html Markup to be used later.
    someVar.addClass('secondClass'); 

新しいクラスを HTML マークアップに追加するには、別の方法が必要です。

ありがとう

4

4 に答える 4

3

HTML要素でのみaddClassを使用できるため、変数をDOM要素に設定する必要があります(例$('<i>')):-

var someVar = $('<i>', {'class': 'firstClass'});
someVa.addClass('secondClass');
于 2013-01-09T16:40:05.353 に答える
3

親から抽出した DOM コンポーネント (例: ソート可能なヘルパー) から html 文字列を取得する必要がある場合、最初にその文字列を jquery オブジェクトに変換できます。

例:

var thehtml = $(ui.helper).html();
    thehtml = $(thehtml); // convert to jquery object
    thehtml.addClass("yourClass"); // we can then assign new class

    ui.helper.replaceWith(thehtml); // do something you want with it

あなたの場合

var someVar = '<i class="firstClass"></i>'; // Html Markup to be used later.
    someVar = $(someVar); // convert to jquery object
    someVar.addClass('secondClass');
于 2016-04-20T19:00:19.553 に答える
2
var someVar = $('<i class="firstClass"></i>'); //embedded string in jquery object
someVar.addClass('secondClass');
于 2013-01-09T16:38:17.353 に答える
1

次の 3 つの方法で実行できます。

  1. HTMl マークアップを最初に実行して、DOM 要素として取得して操作できるようにします。
  2. マークアップを文字列として扱い、'substring' や 'slice' を使用して文字列を操作するという、難しく醜い方法です。
  3. マークアップを分割し、文字列の配列に保持します。たとえば、array[0] = i class=; とします。配列[1] = firstClass; 配列[2] = /i>;

    (私はstackoverflowを初めて使用するため、回答にHTMLを記述する方法を知りませんが、説明しようとしていることがわかったことを願っています)次に、クラス名を配列に連結するだけで、必要な数のクラスを追加できます[1](配列[1] += 'クラス名')。実際に使用したい場合は、すべてのビットを追加してマークアップ全体を再構築します。それはまだ醜いですが、少なくともあなたが望むものを手に入れるでしょう.

于 2013-01-09T17:04:55.357 に答える