Javascript jquery find()方法 请考虑以下代码: <!DOCTYPE html> <html> <style> p{ width:200px; } </style> <head> <script src="http://code.jquery.com/jquery-latest.js"></script> </head> <body> <p><span>Hello</span>, how are you?</p> <p>Me? I'm <span>good</span>.</p> <script> $(document).ready(function(){$("p").find($("*")).andSelf().css("background- color","blue"); }); </script> </body> </html> p{宽度:200px;}
你好,你好吗 我?我很好 $(document).ready(function(){$(“(”)).find($(“*”)).andSelf().css(“背景色”,“蓝色”);}); 输出是整个文档变成蓝色,而我只希望其中的段落和跨度变成蓝色 如果我使用Javascript jquery find()方法 请考虑以下代码: <!DOCTYPE html> <html> <style> p{ width:200px; } </style> <head> <script src="http://code.jquery.com/jquery-latest.js"></script> </head> <body> <p><span>Hello</span>, how are you?</p> <p>Me? I'm <span>good</span>.</p> <script> $(document).ready(function(){$("p").find($("*")).andSelf().css("background- color","blue"); }); </script> </body> </html> p{宽度:200px;},javascript,jquery,Javascript,Jquery,你好,你好吗 我?我很好 $(document).ready(function(){$(“(”)).find($(“*”)).andSelf().css(“背景色”,“蓝色”);}); 输出是整个文档变成蓝色,而我只希望其中的段落和跨度变成蓝色 如果我使用$(“*”).find($(“*”)而不是$($).find($(“*”),那么所有内容都会根据我的需要显示。有人能找出这两种方法的区别吗?谢谢 注意:请大家注意,我知道有更简单的方法来做这件事,但我只想知道为什么这样做不起作用。如果您想选择
$(“*”).find($(“*”)而不是$($).find($(“*”)
,那么所有内容都会根据我的需要显示。有人能找出这两种方法的区别吗?谢谢
注意:请大家注意,我知道有更简单的方法来做这件事,但我只想知道为什么这样做不起作用。如果您想选择所有p,只需使用
$(document).ready(function(){
$("p").css("background-color","blue");
});
没有理由把事情复杂化
如果要选择内部跨距,可以执行以下操作
$(document).ready(function(){
$("p > span").css("background-color","blue");
});
**更新**
find查询中的选择器属性不正确,您不应该像
$(“*”)
那样使用它,而应该只使用“*”
。但是,$(“p”).find(“*”)…
只会选择
标记中的任何元素,因此在find方法后面加上andSelf将使选择变得不明确。如果要选择所有p,只需使用
$(document).ready(function(){
$("p").css("background-color","blue");
});
没有理由把事情复杂化
如果要选择内部跨距,可以执行以下操作
$(document).ready(function(){
$("p > span").css("background-color","blue");
});
**更新**
find查询中的选择器属性不正确,您不应该像
$(“*”)
那样使用它,而应该只使用“*”
。但是,$(“p”).find(“*”)…
只会选择
标记中的任何元素,因此在find方法后面加上andSelf将使选择变得不明确。您不必执行任何操作。就这么做吧
$(function() { $("p").css('background-color', 'blue'); });
注意:$(函数(){})
与$(document).ready(function(){})相同代码>
编辑:由于您有两个,您可能需要执行以下操作:
$(function() { $("p").each(item, function() { item.css('backround-color', 'blue'); })});
编辑2:根据您的评论,您希望:
$(function() { $("p").find('span').andSelf().css('background-color', 'blue'); });
你不必做这些。就这么做吧
$(function() { $("p").css('background-color', 'blue'); });
注意:$(函数(){})
与$(document).ready(function(){})相同代码>
编辑:由于您有两个,您可能需要执行以下操作:
$(function() { $("p").each(item, function() { item.css('backround-color', 'blue'); })});
编辑2:根据您的评论,您希望:
$(function() { $("p").find('span').andSelf().css('background-color', 'blue'); });
你只需要
$("p").css("background-color","blue");
更改文档中的颜色或所有p标记。您这样做有什么具体原因吗?您只需要
$("p").css("background-color","blue");
更改文档中的颜色或所有p标记。您这样做有什么具体原因吗?由于$(“*”)
没有上下文,因此它会选择文档中的每个元素。您希望查找当前选定元素中的所有元素,因此只需将字符串传递给find
但是,这是完全不必要的,您可以将样式应用于p
(因为span
是一个孩子,您不需要将其应用于该孩子):
请注意,在上面的那一行中,我使用了背景色,没有空格,这与您的问题不同。我猜你写这个问题时只是输入错误,但是如果你在属性名中加空格就不行了。这个$(“*”)
没有上下文,所以它会选择文档中的每个元素。您希望查找当前选定元素中的所有元素,因此只需将字符串传递给find
但是,这是完全不必要的,您可以将样式应用于p
(因为span
是一个孩子,您不需要将其应用于该孩子):
请注意,在上面的那一行中,我使用了背景色,没有空格,这与您的问题不同。我猜这只是你写问题时的一个输入错误,但是如果你在属性名中加空格,它就不起作用了。属性名中的$(“p”).find(“*”)和$(“p”).find($(“*”)
是在第二个属性名中传递find()一个jquery对象,而不是常规的选择器字符串
编辑:我刚试过。看起来添加andSelf()会使它以某种方式选择整个文档。逻辑过程是select p>find all elems in The match in The document>select self(p)>color,但select self位似乎出错了
我认为它(andSelf())只是选择传递给find()的对象,即$(“*”),然后选择所有对象。与$(“p”).find(“*”)和$(“p”).find($(“*”)
是在第二个对象中传递find()一个jquery对象,而不是常规的选择器字符串
编辑:我刚试过。看起来添加andSelf()会使它以某种方式选择整个文档。逻辑过程是select p>find all elems in The match in The document>select self(p)>color,但select self位似乎出错了
我认为它(andSelf())只是选择传递给find()的对象,即$('*'),然后选择所有内容
免责声明:其他答案已经建议使用更好的选择器
实现你的目标,但我知道你想知道为什么和self()
最终匹配文档中的所有元素,因此我将尝试
解释一下
首先,如您所知,andSelf()
将堆栈上的前一组元素添加到当前集合中。因此,在您的情况下,似乎应该将
元素添加到包含其子元素的集合中:
$("p") // match the paragraphs
.find($("*")) // match all the elements that descend from a paragraph
.andSelf() // add the paragraphs to the elements above
但是,上面假设find($(“*”)
是前面的元素集,这里的情况根本不是这样。关于这一点的第一个提示来自以下文档:
从jQuery1.6开始,我们还可以使用给定的jQuery筛选选择
集合或元素。使用与上面相同的嵌套列表,如果我们开始
与:
然后传递此jQuery对象以查找:
$('li.item-ii').find( $allListElements );
这将返回一个jQuery集合,其中