如何检查 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 所建议的那样。
我有一个功能
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 所建议的那样。