我无法使 JQuery 的 $() 元素构造函数正常工作。以下工作正常(对 expect()
调用使用 expect.js):
var p = $('<div id="1"><div id="2">middle div</div></div>');
expect(p.children('div')).not.to.be(undefined); //passes
expect(p.children('div').attr('id')).to.equal('2'); //passes
但是下面的不行
var p = $('<p id="1"><div id="2">middle div</div></p>');
expect(p.children('div')).not.to.be(undefined); //passes
expect(p.children('div').attr('id')).to.equal('2'); //fails
关于如何让它正常工作的任何提示?
最佳答案
HTML 标记错误。您不能放置像 <div>
这样的 block 级元素进入 <p>
元素。这就是为什么 HTML 实际上(我认为这取决于浏览器)最有可能被解析为:
<p id="1"></p><div id="2">middle div</div>
或(在 chrome 中):
<p id="1"></p><div id="2">middle div</div><p></p>
您可以通过 console.log(p);
轻松验证这一点
关于javascript - 使用 $() 构造函数在 JQuery 中创建嵌套元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15128441/