我使用jQuery.ajax从服务器端获取一些变量/响应。
返回的数据是json对象,如下所示:
data.consumer_key
data.consumer_secret
我可以自动替换特定容器中的字符串,例如div.returned_data
自动替换返回数据的匹配公式。
示例:
mystring.replace( '{{consumer_key}}', data.consumer_key );
但是,我希望它是动态的。捕获返回的所有数据并自动替换{{data_key}}
。这可以做到吗?我的意思是,没有准确告诉jquery用{{consumer_key}}
替换{{replace_anything}}
但data.replace_anything
。希望我的观点很清楚。
目前这可行,但我需要10个数据键,所以我正在寻找一个自动preg替换解决方案。任何想法?
$( '#api-keys-options' ).html( $( '#api-keys-options' ).html().replace( '{{consumer_key}}', data.consumer_key ) );
非常感谢
答案 0 :(得分:1)
如果你的ajax调用返回一个对象,我们称之为data
,并且data
对象有几个你想要访问的属性,你可以使用以下方法遍历它们:
for (var prop in data) {
console.log("property name: " + prop + ", property value: " + data[prop]);
}
在您的情况下,您希望替换'{{' + prop +'}}'
值中的字符串data[prop]
(基于上面的代码示例)。
这是一个更好的工作片段:
data = {'name1': 'value1', 'name2': 'value2'}
$('#btn1').click(function() {
for (var prop in data) {
console.log("property name: " + prop + ", property value: " + data[prop]);
$('#d1').html(
$('#d1').html().replace('{{'+prop+'}}', data[prop]));
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="d1">This is some text with {{name1}} variables and some {{name2}} variables</div>
<br />
<button id="btn1">Replace</button>