“的强光子串”;“文本”;在HTML中使用javascript选择选项

“的强光子串”;“文本”;在HTML中使用javascript选择选项,javascript,html,Javascript,Html,我有一个html选择,它在运行时填充。 i、 e.当我在html输入文本框中键入内容时,我会在下面附加的html下拉列表框中显示基于子字符串的结果 现在我只想突出显示html下拉列表框中与html输入文本框中的字符串匹配的项的子字符串 e、 g。 如果我在html输入文本框中键入“ample”,那么它应该突出显示“ample” S*示例*文本 我已经尝试修改html下拉列表框的innerHTML属性。 我想使用javascript来实现这一点。您不能为SELECT的内部元素设置样式。它是由操作系

我有一个
html选择
,它在运行时填充。
i、 e.当我在html输入文本框中键入内容时,我会在下面附加的
html下拉列表框中显示基于子字符串的结果

现在我只想突出显示html下拉列表框中与html输入文本框中的字符串匹配的项的子字符串

e、 g。 如果我在html输入文本框中键入“ample”,那么它应该突出显示“ample”
S*示例*文本

我已经尝试修改html下拉列表框的innerHTML属性。
我想使用javascript来实现这一点。

您不能为SELECT的内部元素设置样式。它是由操作系统而不是HTML呈现的。

试试这种方法

<p id="textindrop">this is the text in the dropbox</p>
<a href="#" onClick="highlightsubstring('textindrop'); return false;">tohighlight</a>
<script type="text/javascript">
function highlightsubstring(el) {
var theText = document.getElementById(el).innerHTML;
theText = theText.replace(/(web)/gi, "<b>$1</b>");
document.getElementById(el).innerHTML = theText;
}
</script>

这是dropbox中的文本

函数highlightsubstring(el){ var theText=document.getElementById(el).innerHTML; theText=theText.replace(/(web)/gi,“$1”); document.getElementById(el).innerHTML=文本; }
试试这个,看看这个对你有帮助,把你的一些逻辑也放进去。您也可以为此使用正则表达式。了解javascript中的正则表达式有一种CSS3方法:

  • 使用
    font-family:monospace
    获得等宽字符
  • 使用
    背景图像
    获得可调整的背景
  • 使用
    background position
    在中设置突出显示背景的起始位置
  • 使用
    background size
    ch
    中设置突出显示背景的长度
限制:

  • 仅适用于基于Gecko的浏览器
  • 选择中突出显示也需要额外调整。(我使用了
    文本缩进
    ,鼓励找到更好的解决方案。)

我在JSFIDLE上创建了一个示例。

我使用的示例是这样的——html列表框中的一个选项是示例文本,如果我在html输入文本框中键入“Sample”,那么它应该只在网页上突出显示“Sample”中的“Sample”;我认为您必须回到IE3/Netscape4,才能找到本机操作系统小部件。但是它们限制了你可以应用的效果,选择子字符串肯定不是选项之一。我打赌IE仍然是:)但是是的,这是需要现代化的令人遗憾的被遗忘的元素之一。谢谢!我将看一看这个简单的演示。这确实是一个很好的解决方案。但它在IE 6.0浏览器中也有局限性。IE将“字符”替换为\,因此javascript代码无法添加textbox.value。问题是IE不允许保留“按原样写。@wardhan,你确定你的评论属于这个答案吗?是的。因为我使用了span类的概念。但是我面临着我在上述评论中提到的问题。。我试过这种方法!但问题是innerHTML只是有一些标记。。。它不能解释为粗体字体。