【问题标题】:How to check the condition in the jquery?如何检查jquery中的条件?
【发布时间】:2020-08-07 16:20:29
【问题描述】:

我正在创建 js 树以显示文件夹路径名,我的问题是如何检查数据库表 status 是否为 0(非活动)的条件,然后将在js树。 Else table status 为 1(active) 刚刚恢复正常。以下是我的编码:

<?php 
   $folderData = mysqli_query($mysql_con,"SELECT * FROM filing_code_management");
   $folders_arr = array();
   while($row = mysqli_fetch_assoc($folderData)){
      $parentid = $row['parentid'];
      if($parentid == '0') $parentid = "#";

      $selected = false;$opened = false;
      if($row['id'] == 2){
         $selected = true;$opened = true;
      }
      $folders_arr[] = array(

         "id" => $row['id'],
         "parent" => $parentid,
         "text" => $row['name'] . ' ' . "<span id='category'>". $row['category']."</span>",
         "category" => $row['category'],
         "status" => $row['status'], // status 0 is inactive, status 1 is active
         "state" => array("selected" => $selected,"opened"=>$opened) 

      );
   }

   ?> 

<script style="text/javascript">
    var StrikeNodes = function(nodelist) {
      var tree = $('#folder_jstree').jstree(true);
      nodelist.forEach(function(n) {
        tree.get_node(n.id).a_attr.style = "text-decoration:" + getStrike(parseInt(n.text.substr(0, 3), 10));
        tree.redraw_node(n.id); //Redraw tree
        StrikeNodes(n.children); //Update leaf nodes
      });
    };

        var getStrike = function(i) {
      if (status = '0' ) {
        return "line-through;";
      }  else {
        return "";
      }
    };

    $('#folder_jstree').bind('load_node.jstree', function(e, data) {
      var tree = $('#folder_jstree').jstree(true);
      StrikeNodes(tree.get_json());
    });
</script>

现在我的输出显示了 js 树中的所有线路,而不是检测哪个是活动的或不活动的。

我的工作 JSFiddle 代码在这里:https://jsfiddle.net/ason5861_cs/9x0dsotz/3/

希望有人能指导我哪里出错了。

【问题讨论】:

    标签: php jquery dom strikethrough


    【解决方案1】:

    查看您的代码。你不是在比较它应该是status == '0'而不是status = '0'的状态

    还有 jstree 提供的可用选项。 data 选项可以是任何你想要的。它是您想要附加到点头的元数据。您以后可以随时访问和修改它 - 它对节点的视觉效果没有影响。

    [{
        "id": "1",
        "parent": "#",
        "text": "100 PENTADBIRAN <span id='category'>JTM<\/span>",
        "category": "JTM",
        "data": { "status": 0 },
        "state": {
            "selected": false,
            "opened": false
        }
    }]
    
    var StrikeNodes = function(nodelist) {
      var tree = $('#folder_jstree').jstree(true);
      nodelist.forEach(function(n) {
          tree.get_node(n.id).a_attr.style = "text-decoration:" + getStrike(n.data.status);
          tree.redraw_node(n.id); //Redraw tree
          StrikeNodes(n.children); //Update leaf nodes
      });
    };
    
    var getStrike = function(status) {
        if (status == 0) {
           return "line-through;";
        }
        return "";
    };
    

    这是我编辑了你的小提琴https://jsfiddle.net/Hafizu/1xt7bhem/11/

    【讨论】:

    • 感谢您的回答。你能用你的代码来结合我上面的代码吗?因为我在这里检查我的代码,所以无法工作。但是你的小提琴可以工作。
    • 如何在我的代码中设置 "data": { "status": 0 } 变量
    • 嗨,很抱歉在这里回复晚了,您可以在数据数组"data" =&gt; [ "status" =&gt; $row['status'] ]中设置状态@
    • 谢谢阿斯拉姆。你能在这里帮我另一个问题吗stackoverflow.com/questions/61409269/…
    • 我的另一个问题需要同时显示颜色和删除线
    猜你喜欢
    • 1970-01-01
    • 2019-10-23
    • 1970-01-01
    • 1970-01-01
    • 2011-02-11
    • 2017-05-05
    • 2021-10-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多