只需使用:
$('span[class^=i18n_]').text(
function(){
return this.className;
});
值得一提的是這臺元素的元素的類名的文本; span
沒有value
屬性,並且設置它的html()
是不必要的(儘管在這種情況下它具有幾乎相同的結果)。
順便說一句,這取決於你所需要的本作,你可以用簡單的CSS模擬這種(在支持「現代」瀏覽器):
span[class=^=i18n_]::before {
content: attr(class);
}
手段,以應對多個類別:
$('span[class]').filter(
function(i, e) {
var el = $(e),
classes = el.attr('class').split(/\s+/);
for (var i = 0, len = classes.length; i < len; i++) {
var assessed = classes[i].indexOf('i18n_');
if (assessed === 0) {
el.data('classMatch',classes[i]);
return true;
}
}
}).text(function(){ return $(this).data('classMatch'); });
JS Fiddle demo。
,並處理查找(使用返回的類名來檢索對象的指定值的方法:
var lookup = {
'i18n_something' : 'Something for the "something" suffixed class.',
'i18n_somethingElse' : 'Something for the "somethingElse" version.',
'i18n_AndSomethingElse' : 'And...well, you know the drill.'
};
$('span[class]').filter(
function(i, e) {
var el = $(e),
classes = el.attr('class').split(/\s+/);
for (var i = 0, len = classes.length; i < len; i++) {
var assessed = classes[i].indexOf('i18n_');
if (assessed === 0) {
el.data('classMatch',classes[i]);
return true;
}
}
}).text(function(){ return lookup[$(this).data('classMatch')]; });
JS Fiddle demo
你能舉一個你如何定義變量的代碼示例嗎? – pete
$ .each(content.nodes,function(index,obj){eval(「i18n_t」+ obj.node.tid +「='」+ obj.node。name_i18n +「';」); }); 我知道eval絕對不是這裏最好的選擇,但我真的只需要儘快把它弄出門。每個i18n_t ##引用一個drupal分類。我想要做的只是在該分類標識的類中設置一個範圍,並使其具有魔力並使這些值出現。問題是多語言。通過使用drupal的分類法系統,我可以在網站上定義翻譯權並讓json將正確的翻譯權下放。 – mike029