首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用$()构造函数在JQuery中创建嵌套元素

使用$()构造函数在JQuery中创建嵌套元素
EN

Stack Overflow用户
提问于 2013-02-28 13:54:22
回答 3查看 106关注 0票数 1

我不能让JQuery的$()元素构造函数正常工作。下面的代码可以正常工作(对expect()调用使用expect.js ):

代码语言:javascript
运行
复制
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

但是下面的方法不起作用

代码语言:javascript
运行
复制
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

关于如何让它正常工作,有什么建议吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-02-28 13:58:16

HTML标记错误。不能将像<div>这样的块级元素放入<p>元素中。这就是为什么HTML实际上(我认为这取决于浏览器)最有可能被解析为:

代码语言:javascript
运行
复制
<p id="1"></p><div id="2">middle div</div>

或(在铬合金中):

代码语言:javascript
运行
复制
<p id="1"></p><div id="2">middle div</div><p></p>

您可以通过console.log(p);轻松地验证这一点

票数 3
EN

Stack Overflow用户

发布于 2013-02-28 13:58:00

正在弹出<div>,因为在<p>中包含<div>无效。

票数 1
EN

Stack Overflow用户

发布于 2013-02-28 14:02:33

你应该试试这个:

代码语言:javascript
运行
复制
expect($('#1').find('div').attr('id').to.equal('2');

编辑: Niko和系统是正确的..不过,div不能在p中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15128441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档