使 JavaScript 只适用于 div



>知道有一种方法可以让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>

编辑:这似乎比它的价值更麻烦,感谢您的帮助。

发布代码后更新了答案

您发布的代码$.foo({fontchange: true})表明您正在使用jQuery插件,这有点不寻常,因为它不适用于一组选定的元素。这不是插件通常的工作方式,因此,如果不知道您正在处理的插件,我们就无法提供帮助(大概其文档讨论了如何使其更具针对性)。

jQuery插件的通常用途是,首先你得到一组要操作的元素,通常的选择器(见下文),然后你调用插件函数在它们上。 例如,$("some selector here").foo({fontchange: true}); .但这不是这个特殊的、不寻常的插件似乎的工作方式。


原答案

您已经标记了您的问题jquery,因此:您可以在页面上的任何元素或元素集周围获得一个 jQuery 包装器,您可以为其编写 CSS3 选择器(以及更多)和 jQuery 函数,通常也可以通过其别名 $ 获得。

例如,如果你有一个id"foo"div,这将使用 CSS 选择器#foo获得该div的 jQuery 实例:

var foo = $("#foo");

如果你在div中有一堆span,你可以使用通常的后代选择器语法来获取它们:

var spans = $("div span");

您的函数可能会在某个时候引用document.body以使节点发生变化。与其document.body,不如给它别的东西。对于大多数元素,只需传递元素即可。但是,在iframe的情况下,内部的页面必须来自相同的原点(方案,主机,端口),并且您需要传递框架的contentDocument(以及可选的特定元素)。

大多数jQuery调用使用所谓的"选择器"来选择要处理的元素。 您的代码可能如下所示:

$('body').do_cool_stuff();

以选择整个身体。 'body' 是那里的选择器,您可以将其更改为:

$('#somediv').do_cool_stuff();

要仅选择单个div:

<div id='somediv'>...</div>

选择器中的#对应于divid属性。

编辑,现在我们有一些代码:尝试将$.foo(...)更改为 $('#somediv').foo(...)

最新更新