jQuery/Javascript foreach If/Else |如果为空(不执行任何操作)Else(显示forea
jQuery/Javascript foreach If/Else | If empty (do nothing) else (show foreach)
这个问题通过评论解决。工作解决方案张贴在下方
所以我得到了这段代码,我正在尝试调整它,因为它没有按照我希望的方式显示。
function writeRow(row) {
var spans = '';
for (var i = 0; i < num_of_fields; ++i) {
// to do: append for select type field -> if select write: name, value, title
// to do: add class "debug" to name, and for select tag value
spans += '<div><span class="name"><b>' + field[i].name + ':</b></span> <span class="value">' + row[field[i].name] + '</span></div> ';
}
spans += ' <a href="#remove-row" class="remove">×</a>';
$('#outer-list').append($('<li id="row_' + row_id++ +'">').append(spans));
}
问题出在这条线上:
spans += '<div><span class="name"><b>' + field[i].name + ':</b></span> <span class="value">' + row[field[i].name] + '</span></div> ';
问题是,当.value <span>
内的row[field[i].name]
为空时,它仍然显示名称和空值字段。所以我想用if/else替换这行,比如如果.value <span>
是空的,那么//do nothing
就是CODE FROM ABOVE
。
由于我不会在不尝试自己解决问题的情况下提出问题,以下是我迄今为止所做的尝试,请记住,我将所有这些(如果有的话)都与上面的单行代码放在了同一位置!
尝试1
if $(row[field[i].name]).length == 0) {
// Do nothing
} else {
spans += '<div><span class="name"><b>' + field[i].name + ':</b></span> <span class="value">' + row[field[i].name] + '</span></div> ';
}
尝试2
if $(row[field[i].name]).val().trim().length == 0) {
// Do nothing
} else {
spans += '<div><span class="name"><b>' + field[i].name + ':</b></span> <span class="value">' + row[field[i].name] + '</span></div> ';
}
尝试的顺序不正确,但文档中剩下的2个作为注释。我也尝试了其他一些东西,包括:empty
,但我已经从注释部分删除了它们。
提前感谢您的帮助。如果有什么不清楚的地方,请告诉我。
在Mike C的帮助下尝试3次
var row_id = 0; // row counter
function writeRow(row) {
var spans = '';
for (var i = 0; i < num_of_fields; ++i) {
// to do: append for select type field -> if select write: name, value, title
// to do: add class "debug" to name, and for select tag value
if row[field[i].name].length == 0) {
// Do nothing
} else {
spans += '<div><span class="name"><b>' + field[i].name + ':</b></span> <span class="value">' + row[field[i].name] + '</span></div> ';
}
}
spans += ' <a href="#remove-row" class="remove">×</a>';
$('#outer-list').append($('<li id="row_' + row_id++ +'">').append(spans));
}
我自己回答,因为我不想有太多问题没有答案,因为这可能会让我被屏蔽!不能那样。也要清楚,这个答案学分应该转到MikeC。但他从来没有将答案作为答案发布,只是作为评论。我请他和其他一些人一起发布一个答案,这样我们就可以接受。他从来没有这样做,所以我自己发布了他的答案。
Mike C的工作解决方案
var row_id = 0; // row counter
function writeRow(row) {
var spans = '';
for (var i = 0; i < num_of_fields; ++i) {
// to do: append for select type field -> if select write: name, value, title
// to do: add class "debug" to name, and for select tag value
if (row[field[i].name].length == 0) {
// Do nothing
} else {
spans += '<div><span class="name"><b>' + field[i].name + ':</b></span> <span class="value">' + row[field[i].name] + '</span></div> ';
}
}
spans += ' <a href="#remove-row" class="remove">×</a>';
$('#outer-list').append($('<li id="row_' + row_id++ +'">').append(spans));
}
相关文章:
- 函数参数中的数据与指定变量之间的任何性能差异
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- 如何在ReactJS JSX中执行嵌套的if-else语句
- jQuery中是否内置了任何字符串格式化函数
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- 正在尝试使用if和else添加类,但无法正常工作
- 有任何可能将facebook实时信使整合到一个网站中
- 是否有任何方法可以使用jQuery替换在数组中定义值的文本
- AJAX:$_GET不返回任何值
- 在同一个服务工作者中处理service-worker.js有任何影响吗
- 将事件处理程序绑定到任何可能的事件
- 在Highcharts中,我们可以通过任何方式在渲染图表之前获得plotWidth和plotHeight
- 任何方式使AJAX调用Gmail API,而无需通过JS库
- jQuery/Javascript foreach If/Else |如果为空(不执行任何操作)Else(显示forea
- 任何简化长if else语句的方法<在条件
- Javascript if/else语句不返回任何输出
- jQuery-IF ELSE-未读取任何变量
- 与javascript中的一堆if()else if()相比,使用switch语句是否有任何性能提升
- javascript onClick if/else不做任何事情