簡體   English   中英

如何檢查JavaScript對象是否是新的DOM元素?

[英]How do you check if a JavaScript Object is a new DOM Element?

我有一個功能

mutationToDom: function() {
    var container = document.createElement( 'mutation' );

    container.setAttribute( 'string', 'test' );

    return container;
}

容器是<mutation string="test"></mutation>

我在單元測試中調用此函數后如何檢查?

QUnit.test( 'check function mutationToDom', function( assert ) {
    var container = testBlock.mutationToDom();
    assert.ok( container === ???, 'mutation is created with correct value' );
});

試試#1

我嘗試使用XMLSerializer()將XML轉換為字符串

var containerString = new XMLSerializer().serializeToString(container);

但是, containerString

"<mutation xmlns="http://www.w3.org/1999/xhtml" string="test"></mutation>"

而不是"<mutation string="test"></mutation>"

如何檢查outerHTML

 var testBlock = { mutationToDom: function() { var container = document.createElement('mutation'); container.setAttribute('string', 'test'); return container; } }; QUnit.test( 'check function mutationToDom', function( assert ) { var container = testBlock.mutationToDom(); assert.ok( container.outerHTML === '<mutation string="test"></mutation>', 'mutation is created with correct value' ); }); 
 <link rel="stylesheet" href="https://code.jquery.com/qunit/qunit-2.6.0.css"> <div id="qunit"></div> <div id="qunit-fixture"></div> <script src="https://code.jquery.com/qunit/qunit-2.6.0.js"></script> 

要回答標題中的特定問題,請嘗試使用testObject instanceof Element...HTMLElement 這可能是檢查.outerHTML的前提條件,如31piy所示。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM