关于jquery 获取data属性值的问题


 <ul class="pics">
                    <li><a id="img1" href="javascript:choose(1);" title="梦幻玫瑰套装" data-img="1.png">梦幻玫瑰套装</a></li>
</ul>

  function choose(index){
    var data=$(".pics li:eq("+index+") a").data("img");
    alert(data);
}

为什么一直获取到undefined?求大神指导!

调试下index多少,有没有找到a标签。

可是我用
var data=$("#img1").data("img");也不行。。。。

已解决了,发现公司用的JQ版本太低了。。。。。用新版本后就可以啦

版本是有多低

你那个是自定义属性,用attr,而且要写全来。data是存储数据,不是属性,你需要调用data('img','xxx')这样才能使用data('img')获取

   function choose(index){
    var data=$(".pics li:eq("+index+") a").data("data-img");
    alert(data);
}

改版后的

 <ul class="pics">
                    <li><a href="javascript:choose(1);" title="梦幻玫瑰套装" data-img="1.png">梦幻玫瑰套装</a></li>
                    <li><a href="javascript:choose(2);" title="代币*40" data-img="2.png">代币*40</a></li>
                    <li><a href="javascript:choose(3);" title="高级经验糖果" data-img="3.png">高级经验糖果</a></li>
                    <li><a href="javascript:choose(4);" title="怦然心动(绿)1天" data-img="4.png">怦然心动(绿)1天</a></li>
                    <li><a href="javascript:choose(5);" title="柠檬花开套装" data-img="5.png">柠檬花开套装</a></li>
                    <li><a href="javascript:choose(6);" title="珍爱巧克力*4" data-img="6.png">珍爱巧克力*4</a></li>
                    <li><a href="javascript:choose(7);" title="彩虹桥 1天" data-img="7.png">彩虹桥 1天</a></li>
                    <li><a href="javascript:choose(8);" title="幸运宝石*40" data-img="8.png">幸运宝石*40</a></li>
                    <li><a href="javascript:choose(9);" title="香奈儿の恋套装" data-img="9.png">香奈儿の恋套装</a></li>
                </ul>
 function choose(index){
    var data=$(".pics li:eq("+(index-1)+") a").data("img");
    // alert(data);
    var img=$("<img src='images/"+data+"' />");
    var src=img.attr("src");
    var divNum= $(".img").children().length;
    if(divNum==0){
    $(".img").append(img);

    }else{
        $("img").attr("src",src);
    }
}

大神你的选择器是我见过最复杂的!如果JQ真能识别说明JQ真的好用!,不过怕你不知道它选中的是什么!还有想要使用标签上的数据不用这么复杂,用属性方法就可以了$("div").attr("rel","value"),,读取时用$("div").attr("rel")