我有一个下拉菜单,可以从数据库列中提取文本。数据库列可以包含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 </div><div>August 2, 2012, 11:00am-12:00pm</div><div>August 9, 2012, 11:00am-12:00pm</div></option>
</select>
答案 0 :(得分:3)
不确定为什么在<option>
元素中会有HTML,但......
$('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:)
答案 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, '' );
请注意,当您要使用正则表达式查找时,/替换'。