这是我的代码:
var htmlVar= $("<div id=\"foo\"><div id=\"bar\">Content</div></div>");
var firstDiv= htmlVar.find("div").first();
这不能正常工作,因为没有考虑真正的第一个div“foo”。我把htmlVar包装成另一个div:
var htmlVar= $("<div>" + "<div id=\"foo\"><div id=\"bar\">Content</div></div>" + "</div>");
但是这段代码很难看,而且我很确定有一些更简洁的方法可以做到这一点。
我还希望我的代码始终返回html var的第一个div,无论其结构如何。例如,它也应该为这种情况返回“foo”div:
var htmlVar= $("<html><body><div id=\"foo\">Content</div></body></html>");
有什么想法吗?
答案 0 :(得分:1)
var first = htmlVar[0];
或
var first = htmlVar.get(0);
答案 1 :(得分:1)
如果您有上一个示例中的HTML文档,则可以轻松运行:$('div:first')以获取页面上的第一个div。
您的第一个示例不起作用的原因是因为find命令看起来低于其当前元素。想想看,就像你在你家里,打开前门。你告诉电脑找到它看到的第一所房子。它会找到你的邻居家,因为它已经在你的房子里,看不到自己。希望这是有道理的。
答案 2 :(得分:0)
你试过拆分吗?
var htmlVar = $('<div />');
var newDiv = $('<div />').html('Content');
htmlVar.append(newDiv);
console.log(htmlVar.find('div:first'));