$(this).attr不起作用

时间:2013-05-17 09:59:19

标签: javascript jquery

使用alert debug,if的分支被执行。但匹配的代码标签没有获得“数据语言”属性。

divs.html(function (index, oldhtml) {
    var newhtml = converter.makeHtml(oldhtml);
    var pat = /\{-# CODE (.+?) #-}/i;
    $('code', newhtml).text(function (index, text) {
        var m = text.split("\n")[0].match(pat);
        if (m) {
            $(this).attr("data-language", m[1]);
        }
    });
    return newhtml;
});

1 个答案:

答案 0 :(得分:0)

  

但是匹配的代码标签没有获得“数据语言”属性。

那是因为你没有获得“数据语言”属性,你设置它。

$(this).attr("data-language", m[1]);

属性设置为m[1]中存储的任何内容。请参阅jQuery的.attr()文档。

获取元素中的数据,您可以使用:

$(this).attr('data-language');

或(语义更正确):

$(this).data('language');

要设置数据属性,您应该再次使用jQuery的.data()方法:

$(this).data('language', m[1]);