(美元).Attr不起作用

$(this).attr does not work

本文关键字:不起作用 Attr 美元      更新时间:2023-09-26

使用alert debug,执行if的分支。但是匹配的代码标签没有得到"data-language"属性。

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

但是匹配的代码标签没有得到"data-language"属性。

那是因为你没有得到"data-language"属性,你是在设置它。

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

这个的"data-language"属性设置为存储在m[1]中的任何内容。请参考jQuery的.attr()文档。

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

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

或者(语义上更正确):

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

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

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