字符串拼接问题

 for (var i in  dat){

            areaCont+="<li>"+"<a id="+i+" href='javascript:getUser1(),void(0)'>"+"<span class='paiming'>"+dat[i].img+"</span> "
                +"<span class='address'>"+dat[i].address+"</span>"+"<span class='score'>"+dat[i].score+"</span>"+"</a>"+"</li>";

        }
        
问题是这样的;由于遍历dat里面的数据时;有一个属性dat[i].img有图片也有数字;当遍历到图片时插入图片;数字时直接插入;请问这个判断怎么写
阅读 4k
6 个回答

你建一个中间变量,用isNaN(val)判断是不是数字,是图片的时候加上<img>, 然后把中间变量插进去呗。

使用is_numeric()函數判斷是否數字

一个比较麻烦的做法就是先过滤dat[i].img的内容,再操作。

dat[i].img 改成 getImgContent(dat[i].img)

function getImgContent(data){
  return isNaN(data) ? '<img src="'+ data +'" />'; : data;
}

建议前端的同学用以下方式拼接HTML, 让HTML的结构清楚明了

另: 基于你的nodejs环境很大可能已经支持ES6, 所以下边也用了 Template literals 模板语法

areaCont = dat.map(function(item, i){
    return [
        `<li>`,
            `<a id="${i}" href="javascript:getUser1(),void(0)">`,
                `<span class='paiming'>`, 
                    isNaN(item.img) ? `<img src="${item.img}" />`:'',
                `</span>`,
                `<span class='address'>${item.address}</span>`,
            `</a>`,
        `</li>`].join('')
}).join('');
新手上路,请多包涵

额.....这个问题 明显就是字符串拼接“”+num+“”这样

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题