Chr*_*ris 3 iteration jquery css-selectors
$('form td .hint p')这个jquery选择器返回一个列表[p,p,p,p,p,p].
我想知道循环每一个的最佳方法是什么,检查他们的css值,并在css值=我想要的东西时做一些事情.
我有这个功能来显示和隐藏工具提示,但我只希望一次显示一个工具提示.虽然这样做鼠标悬停及移出的作品,这是因为越野车目前我使用的是父(),next()的,和子(),找到合适的元素,和jQuery瞬间插入我展示元素和隐藏围绕一个div包装.所以基本上我试图强制所有其他p元素有显示:阻止每次鼠标悬停时隐藏.
目前这样做:
target = $('form td .hint p');
target[0].css('display') gives an error.
target.css('display') seems to only return the css of the first one.
Run Code Online (Sandbox Code Playgroud)
cle*_*tus 14
用途each():
var displays = '';
$("p").each(function(i, val) {
displays += "Paragraph " + i + ": " + $(this).css("display") + "\n";
});
alert(displays);
Run Code Online (Sandbox Code Playgroud)
失败的原因:
var target = $("p");
var display = target[0].css("display");
Run Code Online (Sandbox Code Playgroud)
是,target[0]是不 jQuery对象.你可以这样做:
var display = $(target[0]).css("display");
Run Code Online (Sandbox Code Playgroud)
另外,如果您阅读以下文档css():
返回第一个匹配元素的样式属性.
还有两点值得一提.
首先,我不建议自己做一个工具提示.获取众多插件之一.我之前使用过这个,它完成了这项工作.
其次,如果您正在检查CSS显示值,可能有一个值得使用的快捷方式.例如,你可以这样做:
$("p").each(function() {
if ($(this).css("display") == "none") {
$(this).addClass("blah");
}
});
Run Code Online (Sandbox Code Playgroud)
但你也可以使用:hidden和:visible选择器,所以:
$("p:hidden").addClass("blah");
Run Code Online (Sandbox Code Playgroud)
检查css()调用值在很大程度上是不可靠的,因为您只检查内联样式而不是样式表值.
| 归档时间: |
|
| 查看次数: |
3697 次 |
| 最近记录: |