2016-06-15 13 views
0

を交換してください。私はスパンクラスが毎回そこにあることを知っています。正規表現としてこのようなものと交換してやって、その後文字列は、私は、文字列の一部を持っている(ジャバスクリプト)

var s = 'Dow<br> <span class="table-sub-header">Value</span>'; 

そして:

/<span class="table-sub-header">*</span>/ 

をしかし、それは乱雑に見える

私のようなものを試してみました。これを行うきれいな方法がありますか?

編集:この場合の「値」は任意です。私はそれが何であるか分からず、私はスパンにあるものを置き換える一般的な方法を望んでいました。

+0

以下のリンクを参照してくださいjQueryの.text()

を使用することができますが、ブラウザ環境ではありますか?あなたはこれを保持するためにDOMと対話できますか? –

+0

私はブラウザ上にあり、ライブラリオブジェクトからこの値をプロパティとして取得しています。 DOMオブジェクトを文字列に変換し直す必要があるため、文字列配置のDOMオブジェクトに変更するのは変だと思いました。 – user1413969

答えて

0

replace文字列メソッドを試しましたか?

var s = 'Dow<br> <span class="table-sub-header">Value</span>'; 
s = s.replace("Value", "New Value"); 
+0

それは質問の非常に具体的な例に答えているが、私はそれがOPの後であるかどうかはわからない。もしあなたがそうしているのであれば、最初に 'var s = 'Dow
新しい値';'と書くこともできます。 –

+0

もし彼が文字列を扱っているなら、これは最も簡単です。もし彼がHTML要素(文字列ではない)を扱っているなら、@tsh答えか '$(" table-sub-header ")text(" my text ")' –

+0

しかし、 –

3

ブラウザで作業している場合、あなたには、いくつかの要素innerHTMLsを入れて試してみて、

var s = 'Dow<br> <span class="table-sub-header">Value</span>'; 
t = document.createElement('div'); 
t.innerHTML = s; 
t.querySelector('.table-sub-header').textContent = 'Something Else'; 
t.innerHTML // 'Dow<br> <span class="table-sub-header">Something Else</span>' 

はところで、あなたの正規表現は/<span class="table-sub-header">(.*)<\/span>/

0
のようなものでなければならないDOMでそれとしてそれを置き換えること

はい、これにはjQueryを使用できます。

var s = 'Dow<br> <span class="table-sub-header">Value</span>'; 
 

 
var div_wrapper = '<div style="display:none;">'+s+'</div>'; 
 

 
$(document).ready(function(){ 
 
    $('body').append(div_wrapper); 
 
    var new_value = 'newvalue'; // an arbitrary variable 
 
    $('.table-sub-header').text(new_value); 
 
    console.log($('.table-sub-header').text()); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<html> 
 
    <body> 
 
    
 
    </body> 
 
    </html>

+0

は文字列 's'を信頼できるものですか?もしも 's = 'Dow
' – tsh

+0

@tsh文字列は信頼できるものでなければならない、それを追加する前に修正する必要があるdivはjavascriptsのhtmlタグのフィルタオプションを使用しています。 – Manish

関連する問題