我不能让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关于如何让它正常工作,有什么建议吗?
发布于 2013-02-28 13:58:16
HTML标记错误。不能将像<div>这样的块级元素放入<p>元素中。这就是为什么HTML实际上(我认为这取决于浏览器)最有可能被解析为:
<p id="1"></p><div id="2">middle div</div>或(在铬合金中):
<p id="1"></p><div id="2">middle div</div><p></p>您可以通过console.log(p);轻松地验证这一点
发布于 2013-02-28 13:58:00
正在弹出<div>,因为在<p>中包含<div>无效。
发布于 2013-02-28 14:02:33
你应该试试这个:
expect($('#1').find('div').attr('id').to.equal('2');编辑: Niko和系统是正确的..不过,div不能在p中。
https://stackoverflow.com/questions/15128441
复制相似问题