代码无法显示按钮求助:附截图及相关代码
解决按钮无法显示的问题
你的代码里有几个关键错误导致按钮无法生成,逐一修复即可:
误用赋值运算符代替比较运算符
原代码中data[i][j]= /www |http/.test(data[i][j])是赋值操作,会把单元格内容直接替换成true/false,完全覆盖了原本的URL。必须去掉多余的赋值,直接把正则判断作为条件:/^(https?:\/\/|www\.)/.test(data[i][j]) ? ... : ...正则表达式匹配逻辑错误
原正则/www |http/里的www带空格,无法匹配正常的网址格式;同时未考虑https协议。修改为/^(https?:\/\/|www\.)/,可以准确匹配以http/https开头或www开头的URL。HTML属性未加引号包裹
生成的href='+data[i][j] + '没有给URL加引号,若URL含特殊字符会导致HTML语法错误,需改为href="'+data[i][j]+'",确保属性值合法。
修复后的完整代码:
<table id="myTable" class="table table-striped table-bordered table-hover table-condensed myTable"> <tr> <td class="bg-primary"><b>Email</b></td> <td class="bg-primary"><b>Fecha</b></td> <td class="bg-primary"><b>Nombres</b></td> <td class="bg-primary"><b>Distrito</b></td> <td class="bg-primary"><b>Teléfono</b></td> <td class="bg-primary"><b>Residuos</b></td> <td class="bg-primary"><b>Cantidad</b></td> <td class="bg-primary"><b>Unidad</b></td> <td class="bg-primary"><b>Descripcion</b></td> <td class="bg-primary"><b>Archivo</b></td> </tr> <? for (var i = 0; i < data.length; i++) { if(data[i][0].toUpperCase() !== email.toUpperCase()) {?> <tr style="display:none;"> <? for (var j = 0; j < data[i].length; j++) { ?> <td><?= data[i][j] ?></td> <? } ?> </tr> <? } else{ ?> <tr> <? for (var j = 0; j < data[i].length; j++) { ?> <td><?= /^(https?:\/\/|www\.)/.test(data[i][j]) ? '<a class="btn btn-primary text-white btn-xs" target="_blank" href="'+data[i][j]+'"><i class="far fa-arrow-alt-circle-down"></i>Img</a>': data[i][j] ?></td> <? } ?> </tr> <?} }?> </table>
额外注意:如果按钮显示了但图标不出来,要确认页面已经引入了Font Awesome的CSS文件,比如在<head>里添加对应的样式链接。
内容的提问来源于stack exchange,提问作者Bladimir HC
相关产品推荐
相关产品推荐

