2016-03-21 3 views
0

ハードウェアの正常性のためにpowershellから生成された.txtファイルをパイプしています。これはhtmlテーブルにパイプされ、データが頻繁に変更されるので、IDやクラスを割り当てることはほとんど不可能です。具体的には、1列のセルでエラーメッセージが生成されますが、これはかなり時間がかかることがあります。私は、そのセルのテキストから最初の2つの単語をキー入力したいと思います。それは "エラーメッセージ"(引用符なし)で始まります。私のコードを使ってそのテキストを選択し、それを追加してCSSを追加して、誰かが簡単にレポートを読んで問題があるかどうかを簡単に確認できますか?htmlテーブルセル内の文字列の一部を見つけ、値にテキストを追加するには

これはこれまで私が持っていたものです。この最後の小さな部分がわかりません。私はこれを解決するためにJavaScriptにも限定されています。だけでなく、次の追加

var td = [].slice.call(document.querySelectorAll('td')); 
td.forEach(function(td) { 
     if(td.innerHTML == 'Error') { 
      td.innerHTML = "Error" + " " + '<button class="yellow_stoplight"></button>';}  
    if(td.innerHTML == 'Warning') { 
      td.innerHTML = "Warning" + " " + '<button class="red_stoplight"></button>'; } 
       if(td.innerHTML == 'Degraded') { 
     td.innerHTML = "Degraded" + " " + '<button class="orange_stoplight"></button>'; } 
      if(td.innerHTML == 'OK') { 
      td.innerHTML = "OK" + " " + '<button class="green_stoplight"></button>'; } 
     if(td.innerHTML == 'Error' + " ") { 
      td.innerHTML = "Error" + " " + '<button class="red_stoplight"></button>'; } 
\\want to add another conditional statement here to find partial string and add another 'stoplight' in the cell. 



    }); 
######### EDIT

は私の視覚的なインジケータを提供しますが、列/セルにパイプされ、完全なエラーメッセージテキストを維持しています。

if(td.innerHTML.indexOf('Error message') === 0) { 
    td.innerHTML = '<button class="yellow_stoplight"></button>' + " " + td.innerHTML; } 
+0

'td'要素に直接クラスを追加しないのはなぜ? –

答えて

1

td.innerHTMLは文字列を返します。 Javascript文字列にはindexOfというメソッドがあり、別の文字列内の部分文字列の場所を見つけることができます。文字列に部分文字列が含まれていない場合は-1を返します。

あなたは内側のHTMLは、「エラーメッセージ」で始まるかどうかを確認したい場合は、この試してみてください。indexOfメソッドは大文字と小文字が区別されること

if (td.innerHTML.indexOf("Error Message") === 0) { 
    // do stuff.. 
} 

注意を。 innerHTMLに "Error Message"がない場合、-1を返します。

+0

^が部分的に動作します。 "Error message"の直後にcssのストップライトが追加されていますが、コードは残りのエラーメッセージの詳細を削除しています。基本的には、レポートを読んでいる人の視覚的インジケータを作成して、スキップしないようにしたいと考えています。 – allendks45

+0

私は問題を99%解決するので、これをアップホートしたいと思います。メッセージテキスト全体を保持する方法と視覚的インジケータのためのストップライトを追加する方法を理解する必要があります。 – allendks45

+0

私の問題を解決しました。編集の元のコードを参照してください。 – allendks45

2

textContentを使用してみてください:

td.forEach(function(td) { 
    if(td.textContent == 'Error') { 
     td.innerHTML = '<button class="yellow_stoplight">' + 'Error' + '</button>'; 
    } 
    ... 
} 
関連する問題