Javascript 如何在jQuery中使用数据属性?

Javascript 如何在jQuery中使用数据属性?,javascript,jquery,html,Javascript,Jquery,Html,我试图通过添加css样式和jQuery为任何elemet具有数据阴影属性的元素添加一个长阴影。阴影颜色将是元素的值。这就是我的尝试: <div data-shadow="#A00909">Test</div> 对于每个具有数据阴影属性的元素,如何使用数据阴影的值而不是临时值?您已经接近了!首先,您可以使用属性选择器,而不是对所有*执行查询选择器 在这之后,您只需按原样调用每个(而不是attr) 这是最新的提琴: $(函数(){ $(“[data shadow]”)。

我试图通过添加css样式和jQuery为任何elemet具有数据阴影属性的元素添加一个长阴影。阴影颜色将是元素的值。这就是我的尝试:

<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;
});