如何在JS字符串变量中找到JS每个函数的输出(即javascript插值)
How to find output of JS each function within a JS string variable (i.e., javascript interpolation)
对于上下文,gon.jbuilder
是一个嵌套的JSON,表示lenders
和它们的inventories
之间的has_many
关系。
gon.jbuilder = [
{
"name": "John Doe",
"age": 29,
"inventories": [
{"id": 1, "name": "nail"},
{"id": 2, "name": "hammer"},
...
]
},
{
"name": "Jane Smith",
"age": 31,
"inventories": [
{"id": 3, "name": "picture"},
{"id": 4, "name": "frame"},
...
]
}
]
我使用谷歌地图api为每个lender
做一个标记,然后在每个lender
的信息窗口中显示所有他/她的inventories
。这需要一个each
循环内的内容为信息窗口,我不知道怎么做。我需要这样写:
$.each( gon.jbuilder, function (counter, lender) {
// draw the marker for each lender
// establish an info window for each lender
// below per Google API docs should be the content that goes into the info window, not sure how to interpolate the each correctly
var contentString = '<div id="content">'+
'<div id="siteNotice">'+
'</div>'+
'<h1 id="firstHeading" class="firstHeading">'+ lender.name + '</h1>'+
'<div id="bodyContent">'+
'<ul>' +
$.each( lender, function (counter, inventory) {
'<li>' + inventory.name + '</li'>
}; +
'</ul>' +
'</div>'+
'</div>';
谢谢!
$.each
返回迭代过的对象,而不是交互函数返回的对象。另外,你的函数不返回任何东西——它执行一个连接,但不返回它。
您可以使用$.map
,它以数组形式返回所有结果,然后使用.join
将它们连接成字符串。
var contentString = '<div id="content">'+
'<div id="siteNotice">'+
'</div>'+
'<h1 id="firstHeading" class="firstHeading">'+ lender.name + '</h1>'+
'<div id="bodyContent">'+
'<ul>' +
$.map( lender.inventories, function (inventory, counter) {
return '<li>' + inventory.name + '</li>';
}).join('') +
'</ul>' +
'</div>'+
'</div>';
相关文章:
- Datetime格式为Friendly Time.Moment JS输出错误
- 使用Rivets.js输出类
- 如何显示基于JS输出的iframe
- JS 输出到 html 输入
- 正则表达式用于 Flickr 的 JS 输出
- 与 for 的结果混淆..在语句 JS 输出中
- 如何将 JS 输出保存到文件
- 将 JS 输出转换为 PHP 变量
- D3.js输出存储在数据库中
- 如何使React.js输出有效的xml而不是html
- Sublime Text中node.js输出中的输出被截断
- 表单提交前,JS输出所有已检查输入字段值的总和(仅数字)
- JS输出表单值接收到'undefined'在控制台
- Js输出未排序数组
- Twitter-text.js输出html作为纯文本
- 循环遍历JSON字符串并创建动态JS输出
- 用JS输出数组数据
- 谷歌地图-自定义JS输出信息窗口和标记问题
- 如何用JS输出显示在外部网页上的值
- 我如何从js输出一个变量的html