>知道有一种方法可以让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>
选择器中的#
对应于div
的id
属性。
编辑,现在我们有一些代码:尝试将$.foo(...)
更改为 $('#somediv').foo(...)
。