0

テキストテンプレートを作成してプレースホルダーを設定し、このプレースホルダーに入力してページで使用したいですか?お気に入り ..

var temp = '<div class="persons">';
temp += '<p> <span class="firstname">First Name :</span> <span> [firstname]</span> </p>';
temp += '<p> <span class="lastname">Last Name :</span> <span> [lastname]</span> </p>';
temp += '<p> <span class="tel">Telephone :</span> <span> [tel]</span> </p>';
temp += '</div>';

[firstname]、、を私の値で変更してページに表示します[lastname]か?[tel]または他のアイデア?

4

4 に答える 4

3

クイック & ダーティ JS テンプレート エンジン:

// Create a matching object for each of your replacement
var matches = {
    "[firstname]": "fred",
    "[lastname]": "smith",
    "[tel]": "123456789"
}

// Loop through the keys of the object
Object.keys( matches ).forEach( function( key ) {
    // Replace every key with its value
    temp = temp.replace( key, matches[ key ] )
} )
于 2012-04-25T20:55:25.633 に答える
2

単にそれらを置き換えることができます。

temp.replace("[firstname]", "fred").replace("[lastname]", "smith").replace("[tel]", "123456789");

jQuery テンプレートを使用しているかどうかは不明です。

于 2012-04-25T20:50:08.350 に答える
2

試しました.replace()か?

http://jsfiddle.net/KL9kz/

于 2012-04-25T20:53:30.813 に答える
1

このような非常に基本的なことを試してください

function replaceall(tpl, o, _p, p_) {
    var pre = _p || '%',
        post = p_ || '%',
       reg = new RegExp(pre + '([A-z0-9]*)' + post, 'g'),
        str;
    return tpl.replace(reg, function (str, $1) {
        return o[$1];
    });
};
var temp = '<div class="persons">'+
        '<p> <span class="firstname">First Name :</span> <span> [firstname]</span> </p>'+
        '<p> <span class="lastname">Last Name :</span> <span> [lastname]</span> </p>'+
        '<p> <span class="tel">Telephone :</span> <span> [tel]</span> </p>'+
    '</div>',
    data = {
        'firstname':'Fede',
        'lastname':'Ghe',
        'tel' : '+00 012 3456789' 
    };
alert(replaceall(temp, data, '\\\[', '\\\]'));

プレースホルダーの境界をエスケープし、必要に応じて内部の正規表現を調整するように注意してください

于 2012-09-12T12:09:53.100 に答える