2017-10-16 21 views
1

テーブルがある場合、最後の列は結果と呼ばれます。 「失敗」したセル/テキストをすべて強調表示したい。html5の表の特定の単語に色をハイライト/変更する方法は?

どうすればいいですか?

kdbのテーブルでhtml5を使用する必要があります。

現在、私の電子メール機能はこの

htmlMailBody:{[emailadd;subject;message] 
cmd:"echo \"",message, "\" | mutt -e \"my_hdr 
From:[email protected]\" -e \"my_hdr Content-Type: 
text/html\" ",emailadd, " -s \"",subject,"\""; 
sent:@[{system x;1b};cmd;{.log.error"Failure sending email. Reason: ",x;0b}]; 
if[sent; .log.info "Sent email to ",emailadd ]; 
}; 



mailRCP:bbc.gmail.com 



htmlMailBody[mailRCP ;"health check";(,/)("<h2>SOD CHECKS<hr /></h2>";"<br />";markup[result];"<br />")]; 

このdidntの仕事です。マークアップ[結果]をkdbテーブルに置き換えると、動作します。

+0

あなたは何をしたいですか? –

+0

赤い色の表で "失敗"という単語を強調表示したいと思います。 – Terry

+0

あなたは簡単にブートストラップアラートを使ってこれを行うことができます! –

答えて

2

​​の

テーブルをtにします。

q)t 
a b c d result 
------------------- 
94 66 8 82 success 
8 24 62 47 failed 
97 60 95 26 success 
52 69 59 93 success 

HTML td要素の属性の対応表atしてください。属性がない場合は、空の辞書から始めます。空の辞書は()!()です。

q)show at:flip (cols t)! (count each(cols t;t))#enlist()!() 
a  b  c  d  result 
------------------------------ 
()!()()!()()!()()!()()!() 
()!()()!()()!()()!()()!() 
()!()()!()()!()()!()()!() 
()!()()!()()!()()!()()!() 

tresult列に従ってatresult列を更新します。

q)f:t[`result]=`failed 
q)update result:([]color:(sum f)#enlist"red")from `at where f 
q)at 
a  b  c  d  result 
---------------------------------------- 
()!()()!()()!()()!()()!() 
()!()()!()()!()()!() (,`color)!,"red" 
()!()()!()()!()()!()()!() 
()!()()!()()!()()!()()!() 

.h.htacを使用して、表のセルに属性辞書をマークアップできます。まず文字列としての表のセル:

q)string t cols t 
"94"  ,"8"  "97"  "52" 
"66"  "24"  "60"  "69" 
,"8"  "62"  "95"  "59" 
"82"  "47"  "26"  "93" 
"success" "failed" "success" "success" 

二度と頭を下げていないことに気をつけてください。今度はatの辞書もまた反転しました。

q)at cols t 
()!()()!()   ()!()()!() 
()!()()!()   ()!()()!() 
()!()()!()   ()!()()!() 
()!()()!()   ()!()()!() 
()!() (,`color)!,"red"()!()()!() 

我々は.h.htacのそれぞれ第2および第1引数​​としてこれらを使用することができます。 each-both adverbは対応する行を反復処理しますが、対応するセルが必要なので、.h.htac''は行内のセル内で反復処理します。がハイライト表示、またはクライアント - のIDを提供するすべての種類に適合させることができる強力な技術である属性辞書のテーブルを使用して

markup:{[t] 
    th:.h.htc[`tr;]raze .h.htc[`th;] each string cols t;       /table head 
    at:flip (cols t)! (count each(cols t;t))#enlist()!();      /empty attribute dictionaries 
    f:t[`result]=`failed; 
    at:update result:([]color:(sum f)#enlist"red")from at where f;    /attributes for result failed 
    tr:.h.htc[`tr;]each raze each flip .h.htac''[`td;at cols t;string t cols t]; /table rows 
    .h.htc[`table;] .h.htc[`thead;th],.h.htc[`tbody;raze tr] 
    } 

q).h.htac''[`td;at cols t;string t cols t] 
"<td>94</td>"  "<td>8</td>"     "<td>97</td>"  "<td>52.. 
"<td>66</td>"  "<td>24</td>"     "<td>60</td>"  "<td>69.. 
"<td>8</td>"  "<td>62</td>"     "<td>95</td>"  "<td>59.. 
"<td>82</td>"  "<td>47</td>"     "<td>26</td>"  "<td>93.. 
"<td>success</td>" "<td color=\"red\">failed</td>" "<td>success</td>" "<td>su.. 

機能markupはHTML table要素を組み立てますサイドスクリプト。

+0

ありがとう!!!!私は、電子メールを送信してコンテンツを入れるだけの機能を持っています。コンテンツマークアップ[table]を置くと、それは動作しませんでした。 .h.htc ['table;] .h.htc [' thead; th]の間にコンマがあるべきか?これは、テーブルやページを生成しているのですか?どうもありがとう!!! – Terry

+0

私の質問が更新されました。あなたが気にしないなら、どうぞご覧ください。ありがとう! – Terry

+0

が修正されました。 (謝罪:テストしたバージョンの前にバージョンを貼り付けました) 'htmlMailBody'の第3引数に適した単一の文字列を返します。 – SJT

2

<!DOCTYPE html> 
 
<html lang="en"> 
 
<head> 
 
    <title>Bootstrap Example</title> 
 
    <meta charset="utf-8"> 
 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
 
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
 
</head> 
 
<body style="margin-top:50px;"> 
 
<div class="container"> 
 
    
 
    <div class="alert alert-success alert-dismissable"> 
 
    <a href="#" class="close" data-dismiss="alert" aria-label="close">×</a> 
 
    <strong>Success !!</strong> This Text When Success !! 
 
    </div> 
 

 
    <div class="alert alert-danger alert-dismissable"> 
 
    <a href="#" class="close" data-dismiss="alert" aria-label="close">×</a> 
 
    <strong>Failed !!</strong> This Text When Failed !! 
 
    </div> 
 
</div> 
 

 
</body> 
 
</html>

+0

ありがとう!!私はテーブルで、多くのコラムがあることを意味します。最後の列は結果と呼ばれます。各セルは成功または失敗になります。私は "失敗した"という言葉でそれらを強調したいと思います。 – Terry

+0

@Terry Check「John Doherty」はこれを行う簡単な方法です。 –

1

あなたはjQueryのことでそれを行うことができます。下記のコードを参照してください。それが動作することを願っています。 jQueryエラーが発生した場合は、$をすべてjQueryに置き換えてください。あなたの結果テキストをresult_textクラスのhtml要素にバインドしました。

HTML

<td><div class='result_text'>Failed</div></td> 
<td><div class='result_text'>Success</div></td> 
<td><div class='result_text'>Failed</div></td> 

$(".result_text").each(function() { 
    if($(this).text()=='Failed'){ 
     $(this).parent().addClass('bg-danger'); 
    }else{ 
     $(this).parent().addClass('bg-success'); 
    } 
}) 
2

各セルにHTML5 data-属性として結果を追加:マークアップ機能を使用して、QからあなたのHTMLテーブルを直接マークアップする

.results td[data-status="Failed"] { 
 
    color: red; 
 
}
<table class="results"> 
 
    <tr> 
 
     <th>Test Name</th> 
 
     <th>Result</th> 
 
    </tr> 
 
    <tr> 
 
     <td>Test 1</td> 
 
     <td data-status="Passed">Passed</td> 
 
    </tr> 
 
    <tr> 
 
     <td>Test 2</td> 
 
     <td data-status="Failed">Failed</td> 
 
    </tr> 
 
    <tr> 
 
     <td>Test 3</td> 
 
     <td data-status="Passed">Passed</td> 
 
    </tr> 
 
</table>

関連する問題