我可以通过jQuery中返回的数据键自动替换特定的字符串吗?

时间:2016-10-03 21:57:53

标签: jquery

我使用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 ) );

非常感谢

1 个答案:

答案 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>