我有一个js对象,它有一个参数,用于定义HTML中的布局。在构建页面时,我使用jQuery修改该布局参数,然后在屏幕上绘制它。出于某种原因,当我尝试对对象使用jQuery选择器时,它没有找到任何东西。
这里我使用浏览器控制台显示对象参数:
$(Students_OE_Programs.layout)
(3) [div.test, text, div#student_programs_pb1_holder.pickboxHolder]
0:div.test
1:text
2:div#student_programs_pb1_holder.pickboxHolder
length:3
__proto__:Array(0)
现在我使用jQuery从这个对象中选择所有div。正如你在上面看到的,应该有2个,但我没有:
$('div',Students_OE_Programs.layout)
r.fn.init [prevObject: r.fn.init(3)]
我也尝试过:
$(Students_OE_Programs.layout).children('div')
r.fn.init [prevObject: r.fn.init(3)]
最令人费解的是,我在同一页面的其他部分做了完全相同的事情,它运作得很好。任何帮助,将不胜感激。如果有人提出这个问题,我很抱歉,我发现很难找到。
更新以包含以下示例。正如您所看到的那样,布局包含两个div,但是jQuery.append找不到任何匹配的内容,因此它不会附加任何跨度。
var Students_OE_Programs = {
layout: null
}
$(document).ready(function() {
var l = '<div class="test">Programs</div>\
<div id="OEPrograms_holder" class="pickboxHolder"></div>';
Students_OE_Programs.layout = $.parseHTML(l);
console.log(Students_OE_Programs.layout);
$('div',Students_OE_Programs.layout).append('<span>test</span>');
$('body').append(Students_OE_Programs.layout);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<html>
<body>
</body>
</html>
答案 0 :(得分:0)
这确实得到了相关问题的回答:
$(selector,$ .parseHTML(data))样式查找使用$ .find。由于我正在寻找这个jQuery对象中顶级元素,我应该使用$ .filter代替。瞧。
在项目的其他部分,我不是在寻找能够正常工作的顶级元素。
谢谢大家的帮助!