在下拉选项文本中查找所有html字符,并通过jQuery替换它们

时间:2012-06-15 15:13:40

标签: jquery html

我有一个下拉菜单,可以从数据库列中提取文本。数据库列可以包含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 个答案:

答案 0 :(得分:3)

不确定为什么在<option>元素中会有HTML,但......

jsFiddle

$('select option').each(function() { 
    this.text = $(this).text();       
});

答案 1 :(得分:0)

使用正则表达式替换所有实例并执行您想要的任何花哨的东西:

http://davidwalsh.name/javascript-replace

例如,这将取代'hello'和/或'wo':

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

请记住,你不能用正则表达式解析HTML:)

RegEx match open tags except XHTML self-contained tags

答案 2 :(得分:0)

我同意在服务器端执行此操作会更合适。

如果你必须使用Javascript,你可以使用正则表达式:

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

在RegEx结束时注意g:它是全球旗帜。

您还需要转义一些特殊字符,例如/。 那么&lt; / div&gt;。

答案 3 :(得分:0)

您可以使用regex中的/ g选项替换一行上的所有实例。

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

请注意,当您要使用正则表达式查找时,/替换'。