Javascript 如何在jQuery中使用数据属性?
我试图通过添加css样式和jQuery为任何elemet具有数据阴影属性的元素添加一个长阴影。阴影颜色将是元素的值。这就是我的尝试:Javascript 如何在jQuery中使用数据属性?,javascript,jquery,html,Javascript,Jquery,Html,我试图通过添加css样式和jQuery为任何elemet具有数据阴影属性的元素添加一个长阴影。阴影颜色将是元素的值。这就是我的尝试: <div data-shadow="#A00909">Test</div> 对于每个具有数据阴影属性的元素,如何使用数据阴影的值而不是临时值?您已经接近了!首先,您可以使用属性选择器,而不是对所有*执行查询选择器 在这之后,您只需按原样调用每个(而不是attr) 这是最新的提琴: $(函数(){ $(“[data shadow]”)。
<div data-shadow="#A00909">Test</div>
对于每个具有
数据阴影
属性的元素,如何使用数据阴影
的值而不是临时值?您已经接近了!首先,您可以使用属性选择器,而不是对所有*
执行查询选择器
在这之后,您只需按原样调用每个
(而不是attr
)
这是最新的提琴:
$(函数(){
$(“[data shadow]”)。每个(函数(i,值){
var t=$(this.data('shadow');
变量n,sh=“”,长=90;
对于(n=1;n
您可以选择$(“[数据阴影]”)
选择器(根据Jack的建议)并直接访问元素的。css()
回调(因为$()
)已经是元素的集合:
$('[data-shadow]').css("text-shadow", function() {
var t=$(this).data().shadow, sh="", long=90;
for(var n=1; n<=long; n++) sh += n+"px "+n+"px "+t+(n<long?" ,":"");
return sh;
});
$('[data shadow]').css(“文本阴影”,函数(){
var t=$(this.data().shadow,sh=”“,long=90;
for(var n=1;nhehy,对我来说似乎有效。但是,您在for循环中使用的是temp而不是t?请尝试sh=sh+n+“px”+n+“px”+t;-也可以更轻松地在数据阴影中使用不同的颜色。您可以使用$('[data shadow]')
而不是$('*'))
选择器也不能与t一起工作。看看这个失败的原因,因为缺少函数print\r(t);*选择器是错误的,因为它拖拉了所有的排序-这就是为什么elzi正确地使用了特定的selectorGreat点!jQuery的隐式迭代是一件美妙的事情!
// jQuery
$(function() {
$( "*" ).attr( "data-shadow", function( i, value ) {
var t = $(this).data('shadow');
var n, sh = "",long = 90;
for( n = 1 ; n <= long ; n++ ){
sh = sh + n + "px "+n+"px "+ value;
if( n != long ) sh = sh +", ";
}
$(this).css("text-shadow",sh);
});
});
$( "*" ).attr( "data-shadow", function( i, value ) {
var temp = "#A00909";
var t = $(this).data('shadow');
var n, sh = "",long = 90;
for( n = 1 ; n <= long ; n++ ){
sh = sh + n + "px "+n+"px "+ temp;
if( n != long ) sh = sh +", ";
}
$(this).css("text-shadow",sh);
});
});
$(function() {
$('[data-shadow]').each(function(i, value) {
var t = $(this).data('shadow');
var n, sh = "",long = 90;
for( n = 1 ; n <= long ; n++ ){
sh = sh + n + "px "+n+"px "+ t;
if( n != long ) sh = sh +", ";
}
$(this).css("text-shadow",sh);
});
});
$('[data-shadow]').css("text-shadow", function() {
var t=$(this).data().shadow, sh="", long=90;
for(var n=1; n<=long; n++) sh += n+"px "+n+"px "+t+(n<long?" ,":"");
return sh;
});