使用jQuery'this'访问多个html数据属性

时间:2012-03-25 10:43:36

标签: jquery this html

好的,标题可能有点令人困惑。让我解释一下。

<div class="book">
    <h3>Name of Book</h3>
    <p>
        <span data-notmobile="Author"></span>Rajesh K. Maurya</p>
    <p>
        <span data-notmobile="Publication"></span>Wiley India</p>
    <p>
        <span data-notmobile="Edition"></span>2011</p>
    <p>
        <span data-notmobile="Branch"></span>Information Technology</p>
    <p>
        <span data-notmobile="Semester"></span>5</p>
</div>

现在我想要一种方法分别用其data属性替换每个span的内容。 我试过了

$('.book span').html($('.book span').data("notmobile"));

只将内部html更改为第一个属性,即“作者”。出于某种原因,'this'关键字不起作用。

我想这样做而不给每个跨度一个属于它自己的类。

3 个答案:

答案 0 :(得分:3)

$('.book span').each(function(){
    $(this).html($(this).data("notmobile"));
});

LIVE DEMO

答案 1 :(得分:2)

$('.book span').data('notmobile')返回第一个匹配元素的值。使用以下代码获得正确的预期效果:

演示:http://jsfiddle.net/Gezxj/

$('.book span').html(function() {
    return $(this).data("notmobile");
});

答案 2 :(得分:1)

$('.book span').each(function() {
    var $this = $(this);
    $this.html($this.data('notmobile')); 
});