当我使用使用不同空格的html字符串时,我发现了Node.isEqualNode()方法的意外行为。无论有没有空格,html结构都是等价的,但innerText属性具有不同的值。
这仅用于测试目的,因此不要为html字符串进行downvote!
var html = `<table>
<tbody>
<tr>
<td>a</td>
<td>b</td>
</tr>
</tbody>
</table>`
var div_1 = document.createElement('div')
div_1.innerHTML = html
var div_2 = document.createElement('div')
div_2.innerHTML = html.replace(/ |\n/g, '') // removes whitespace
console.log(div_1)
console.log(div_2)
console.log(div_1.isEqualNode(div_2)) // false
div_1.innerText包含所有空格以及a和b,而div_2.innerText仅包含a和b。
这看似奇怪的行为,我想知道这是否是预期的行为。