domで作業している間に、私はの結果と同じ方法でdocument.createElement();
のオブジェクトと扱われると仮定したところで、setAttribute()
を呼び出すことができました。なぜdocument.createTextNode()はsetAttribute()を許可しないのですか?
例:
var genericElementNode = document.createElement('p');
genericElementNode.setAttribute('id', 'sampleId1');
// The above will run fine
var textNode = document.createTextNode("Hello World");
textNode.setAttribute('id', 'sampleId2');
//The above will result in an error:
//Uncaught TypeError: textNode.setAttribute is not a function
なぜこのような場合は?また、回避策はありますか?
テキストノードは要素ではないため、[プロトタイプ]が異なります(https://developer.mozilla.org/docs/Web/API/Node)。 --- 'setAttribute'は' HTMLElement'のメソッドで、 'textNode'は継承しません。 – evolutionxbox
_ "回避策はありますか?" _最終目標は何ですか? –
@evolutionxboxそれを答えに展開できればそれは優れているはずです。また、textNodeがそのように名前が付けられているにもかかわらず、なぜ「ノード」ではないのか、ご存じですか?なぜそれはもっと適切なものと呼ばれていないのですか? – Rugnir