使javascript仅适用于div

时间:2012-04-23 11:23:51

标签: javascript jquery iframe html

任何知道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>
编辑:感谢你的帮助,这似乎比它的价值更麻烦。

3 个答案:

答案 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(...)