1

我无法让 JQuery 的 $() 元素构造函数正常工作。以下工作正常(使用 expect.js 进行expect()调用):

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

有关如何使其正常工作的任何提示?

4

3 回答 3

3

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-28T05:58:15.907 回答
1

你应该试试这个:

expect($('#1').find('div').attr('id').to.equal('2');

编辑: Niko 和系统是正确的.. 一个 div 不能在 ap 虽然。

于 2013-02-28T06:02:33.467 回答
1

正在被弹出,<div>因为<div><p>.

于 2013-02-28T05:58:00.380 回答