在javascript中更改代码

时间:2016-10-18 02:58:59

标签: javascript php jquery

我希望按类创建状态,如果status = 1,则结果为text"已批准"和类"标签label-sm label-success"反之亦然。

我有这样的代码

<span class="<?php if( $row->status==0 ) {
          echo 'label label-sm label-warning';
       } else if ( $row->status==1 ) {
          echo 'label label-sm label-info';
       } else { 
          echo 'label label-sm label-success';
 }?>"> 
<?php 
   if ( $row->status == 0 ) {
      echo 'Processing';
   } else if ( $row->status==1 ) { 
      echo 'Waiting';
   } else { 
      echo 'Approved';
   }?></span>

如果我有类似上面的代码按类更改为javascript,如何创建代码?

3 个答案:

答案 0 :(得分:0)

很难理解你的问题,但如果你想要一个更简单的方法来创建具有正确文本和类的元素,这将有效:

   <?php
    $vars = $row->status==0 ?  ['warning','Processing'] : ($row->status==1 ? ['info','Waiting'] : ['success','Approved']);
    echo '<span class="label label-sm label-'.$vars[0].'">'.$vars[1].'</span>';
    ?>

答案 1 :(得分:0)

如果这是您想要的东西,请检查一下,如果正确或者您仍然需要修改,请告诉我

function myStatus(){

if ($(".status").data('status') == '0'){
  $(".status").addClass('label label-sm label-warning').css({'color':'red'})
}else if($(".status").data('status') == '1'){
 $(".status").addClass('label label-sm label-info').css({'color':'yellow'})
}else{
 $(".status").addClass('label label-sm label-success').css({'color':'black'})
}

if ($(".statusb").data('status2') == '0'){
  $(".statusb").addClass('label label-sm label-warning').css({'color':'#333'})
}else if($(".statusb").data('status2') == '1'){
 $(".statusb").addClass('label label-sm label-info').css({'color':'green'})
}else{
 $(".statusb").addClass('label label-sm label-success').css({'color':'orange'})
}

}

myStatus()
span{
  display: block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span class="status1" data-status="insert php echo here ">asd</span>
<span class="status2" data-status2="insert php echo here">asd</span>
<br>
Working Example base on status:
<span class="status" data-status="0">asd</span>
<span class="statusb" data-status2="1">asd</span>

答案 2 :(得分:-1)

首先需要一个隐藏字段来存储状态字段 第二,我想我将删除所有的if / else代码,并让JS全部handels

所以HTML代码看起来像这样

<input type='hidden' id='status' value='<?php echo $row->status?>' />
<span id='targetSpan' class=""> </span>

在js中,因为if / else可能需要多次运行,所以我将它写入函数。

当页面加载时,该函数应该运行。所以JS看起来像这样:

$('#document').ready(function() {
    updateSpanClass(); //call at beginning

    function updateSpanClass(){
        var status = $('#status').val();

        //every call of the function i class the class first
        $('#targetSpan').removeClass();

        if(status == 1){
            $('#targetSpan').addClass('label label-sm label-info'); //update class
            $('#targetSpan').html('Waiting'); //update text
        } else if(status == 0) {
            $('#targetSpan').addClass('label label-sm label-warning');
            $('#targetSpan').html('Processing');
        } else {
            $('#targetSpan').addClass('label label-sm label-success');
            $('#targetSpan').html('Approved');
        }
    }
});