如何知道DOM元素是否在jquery范围内
how to know if a DOM element is in the jquery scope?
可能重复:
jquery选择iframe子级
我的asp.net网站上有很多相框。由于我不知道它的布局,并且我需要在jquery代码所在的不同帧中更新<span>
值,因此我执行以下操作:
$('#myspan').text('sometext');
但一切都变了。所以我不知道是不是因为jquery没有用这个选择器捕获元素,因为它不在它的范围内,或者为什么。
然而:
alert($('#myspan'));
显示一个结果为[object][object]
的警报。
$('someSelector')
(将始终返回一个对象,即使没有元素与选择器匹配。
如果您确实在使用多个框架,则会出现问题:jQuery无法跨框架找到元素,只能在当前文档/框架中找到–除非为要作为目标的特定文档传递一个合适的上下文对象。
例如,如果你有一个<iframe id="myframe">
,你可以用这个来查找里面的#myspan
:
var frameDoc = $('#myframe')[0].contentWindow.document;
var mySpan = $('#myspan', frameDoc);
为了实现这一点,iframe的源必须与主页面位于同一域中。下面的评论中还建议了以下更清洁的选项:
var mySpan = $("#myframe").contents().find('#myspan')
或
var mySpan = $('#myspan', $("#myframe").contents());
调试jQuery问题的一个好方法是以下模式:
var e = $(...);
console.log(['Explanation', e.get()]);
不带参数的get()
将把奇怪的jQuery选择器结果转换为一个普通的JavaScript数组,您可以在浏览器的控制台中展开它。这应该有助于查看选择器返回的内容。
如果它与任何内容都不匹配,那么您的选择器不知何故是错误的。如果元素确实存在,请检查浏览器开发工具中的当前DOM。
相关文章:
- 网站范围内jQuery/javascript选择器的最佳实践
- 使用jQuery捕获站点范围内的文件下载
- Jquery日期选择器-防止选择范围内的不可用日期
- jQuery:检索日期选择器日期,检查是否在日期范围内,显示/隐藏字段
- 包括js文件和使用jquery就绪范围内的函数
- 否则,无法使用 Jquery 更改范围内的文本
- jquery或js:将站点范围内的链接替换为另一个AND,并更改为https
- 如何在 jQuery 中选择输入范围内的值
- jQuery 自定义事件在全局范围内工作,但在对象之间不起作用
- 在页面高度的范围内调用jQuery函数
- for循环范围内的jQuery$.get()
- 如何使用jquery/javascript检查当前时间是否在一周中的特定范围内
- 使用moment.js、js或Jquery,在一个时间范围内打开一个功能
- 使用jQuery UI datepicker在一个范围内定制特定的禁用日期
- 访问jQuery范围内的函数
- 在哪个范围内执行来自JQuery JSONP Ajax请求的回调?
- jQuery ajax自定义HTTP状态消息在2xx范围内
- 如何改变网站范围内的jQuery slideUp/slideDown持续时间
- 获取jquery滑块范围内的所有值
- 如何知道DOM元素是否在jquery范围内