【问题标题】:Contains of a String [closed]包含一个字符串[关闭]
【发布时间】:2018-07-04 13:33:43
【问题描述】:

我的表格中有一个状态是Up,Paused,Stopped

如果所有选中的都有 Up:console.log("all up");

如果所有选择都已启动或暂停:console.log("all up or paused");

如果所有选择都已停止:console.log("all stopped");

否则:console.log("什么都不做");

我如何确保所有人都有这种情况?此代码不起作用,因为它会显示多次而不是全部比较。

 $('#dataTable tbody').on( 'click', 'tr', function () {
    var rowsStatus = table.row('.selected').data()[2];
    $.each(rowsStatus, function (index, rowStatus) {
        if(rowStatus.indexOf("Up") > -1) {
            console.log("up")
        }
    });
} );

【问题讨论】:

  • 我们需要查看您的 HTML 以帮助您
  • 为什么?状态在这里:table.row('.selected').data()[2]这是纯javascript
  • 这是文本。喜欢<td><span class="label label-success fa fa-arrow-up"> Up 38 hours</span></td>
  • 缺少的信息是你有一个数据表:datatables.net/reference/api/row().data() - 我为你添加了标签
  • 只需为每个值创建一个计数器。循环检查并增加正确的计数器。在循环之后,使用您的逻辑检查计数器并输出您想要的值。然后你可以删除问题,我们可以继续我们的生活(即在 SO 上浪费更多的生命)

标签: javascript jquery datatables


【解决方案1】:

也许这就是你需要的。这里我刚刚使用了array,因为没有包含 html,无法测试。希望一切顺利。

var arr = ["Up","Paused","Up","Stopped","Stopped","Up"];
var isallup = true, isallpaused = false, isallstopped = true, isanythingstopped = false;
$.each(arr, function (index, rowStatus) {
    if(rowStatus.indexOf("Up") > -1 ) {
        isallstopped = isallpaused = false;
    }
    if(rowStatus.indexOf("Paused") > -1 ) {
        isallstopped = isallup = false;
    }
    if(rowStatus.indexOf("Stopped") > -1 ) {
        isanythingstopped = true;
        isallpaused = isallup = false;
    }
});

console.log("Is all Up : "+isallup);
console.log("Is all Up or Paused : "+!isanythingstopped);
console.log("Is all stopped : "+isallstopped);
if(isanythingstopped && !isallpaused && !isallstopped)
{
    console.log("do nothing");
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-02-06
    • 2016-01-30
    • 2013-12-20
    • 1970-01-01
    • 2011-08-31
    • 1970-01-01
    • 2015-03-30
    • 2012-11-21
    相关资源
    最近更新 更多