任何知道javascript / jquery的方法只适用于div或iframe中的所有内容吗?
举个例子: 我有一个很酷的javascript函数,可以让我的文本改变颜色,但是当我只想改变div或iframe中的文本时,它会改变整个文本页面的颜色。
有什么想法吗?
以下是一些代码:
<script type="text/javascript">
$(document).ready(function() { // When the document is ready
$.foo({
fontchange: true, // Make the text pretty
});
});
</script>
编辑:感谢你的帮助,这似乎比它的价值更麻烦。
答案 0 :(得分:4)
更新的答案:
您发布的代码$.foo({fontchange: true})
表明您使用的jQuery插件有点不寻常,因为它不适用于一组选定的元素。这不是插件通常如何工作,所以我们不知道你不知道你正在处理什么插件(可能是它的文档谈论如何使它更有针对性)。
通常使用jQuery插件是首先获得一组元素来处理,通常的选择器(见下文),然后你调用它们上的插件函数。例如,$("some selector here").foo({fontchange: true});
。但这并不是这个特殊的,不寻常的插件似乎如何运作。
原始回答:
您已标记了问题jquery
,因此:您可以在页面上的任何元素或元素集周围获取jQuery包装,您可以为其编写CSS3 selector(和{{3 }}和few more函数,通常也可以通过别名$
获得。
因此,例如,如果div
id
为"foo"
,那么将使用CSS选择器{{1}获取div
的jQuery实例}}:
#foo
如果var foo = $("#foo");
中有一堆span
,你可以使用通常的后代选择器语法来获取它们:
div
答案 1 :(得分:1)
您的函数可能会在某个时刻引用document.body
来更改节点。而不是document.body
,给它一些别的东西。在大多数元素的情况下,只需传递元素就可以了。但是,在iframe
的情况下,内部的页面必须来自相同的源(方案,主机,端口),并且您需要传递帧的contentDocument
(以及可选的特定元素)
答案 2 :(得分:1)
大多数jQuery调用使用所谓的“选择器”来选择要处理的元素。您的代码可能类似于:
$('body').do_cool_stuff();
选择整个身体。 'body'
是选择器,您可以将其更改为:
$('#somediv').do_cool_stuff();
只选择一个div:
<div id='somediv'>...</div>
选择器中的#
与id
的{{1}}属性相对应。
修改,现在我们有了一些代码:尝试将div
更改为$.foo(...)
。