0

データベース列からテキストを取得するドロップダウン メニューがあります。データベース列には、HTML マークアップを含めることができます。ドロップダウンでは、テキストでそれを明らかに必要としません。私はいくつかのjqueryに取り組んでおり、探しているものを部分的に達成しました。ただし、各文字の最初のインスタンスのみを置き換えているようです

$('select option').each(function() { 
    this.text = this.text.replace(' ', ' ');
    this.text = this.text.replace('<div>', '' );
    this.text = this.text.replace('</div>', '' );
});

ドロップダウンの HTML は次のとおりです。

<select name="ctl00$SubPageBody$ClassList" id="ctl00_SubPageBody_ClassList">
<option value="196">Four Week Series: July 19, 2012, 11:00am-12:00pm&<div>July 26, 2012, 11:00am-12:00pm&nbsp;</div><div>August 2, 2012, 11:00am-12:00pm</div><div>August 9, 2012, 11:00am-12:00pm</div></option>

</select>
4

4 に答える 4

3

そもそも要素内に HTML がある理由はわかりません<option>が...

jsフィドル

$('select option').each(function() { 
    this.text = $(this).text();       
});
于 2012-06-15T15:16:57.010 に答える
0

正規表現を使用してすべてのインスタンスを置き換え、好きなことを何でも行います。

http://davidwalsh.name/javascript-replace

たとえば、これは「hello」および/または「wo」を置き換えます。

var s = 'hello world hello';
var s = s.replace(/hello|wo/g, '');

HTMLを正規表現で解析できないことに注意してください:)

正規表現は、XHTML 自己完結型タグを除く開始タグに一致します

于 2012-06-15T15:22:10.087 に答える
0

サーバー側でこれを行う方が適切であることに同意します。

ただし、Javascript を使用する必要がある場合は、正規表現を使用できます。

$(this).text().replace(/REPLACEME/g, 'repclacement');

RegEx の末尾にある g に注意してください。これはグローバル フラグです。

/ などの一部の特殊文字もエスケープする必要があります。</div> も同様です。

于 2012-06-15T15:22:47.597 に答える
0

正規表現で /g オプションを使用して、行のすべてのインスタンスを置き換えることができます。

this.text = this.text.replace(/<\/div>/g, '' );

正規表現で検索する場合は、/ が ' に置き換わることに注意してください。

于 2012-06-15T15:23:58.903 に答える