如何删除下拉列表中的部分文本

How to remove part of text in a dropdown list?

本文关键字:文本 下拉列表 何删除 删除      更新时间:2023-09-26

我正在开发一个智能模板,我只能编辑HTML和放置JavaScript,但不能编辑php代码。

列表如下:

<select>
  <option id="1" value="first">{$line1}</option>
  <option id="2" value="second">{$line2}</option>
</select>

其中,在活动页面中,{$line1}显示为green{$line2}显示为black and white

我想放置一个JavaScript或jQuery代码,从{$line2}中取出(删除)and white文本,以便仅显示black。有什么建议吗?非常感谢您的回答。

这里有一个动态解决方案:

$('select option').each(function(i, item){
        var words = $(item).text().split(' ');
        $(item).text(words[0]);
    });

演示:Fiddle

要从下拉列表中删除选项,只需使用JavaScript:

document.getElementById("2").innerHTML = "";
document.getElementById("2").innerHTML = "black";

通过这种方式,黑色和白色将被设置为"或根本没有,然后设置为"黑色"如果你想将其更改为另一段文本,请将"黑色"更改为其他内容。

正如dandavis在评论中所说,您可以使用以下代码设置选项的值:

$('option[value=second]').text('Black')

但是,假设您的文本是动态的,并且您希望始终剪切掉第一个单词之后的任何内容(即'Black and white'→;'Black''Red and yellow'→,'Red'),那么您将希望使用以下内容:

var opt = $('option[value=second]');
opt.text(opt.text().split(' ')[0]);

解释:

opt.text()获取option的文本。

split(' ')通过文本中的空格将字符串拆分为一个数组。

示例:使用该拆分,字符串:'strings are awesome'将变成字符串的数组:['strings', 'are', 'awesome']

[0]从该数组中获取第一个字符串。(在您的情况下恰好是'Black'。)

请尝试这个,在FIDDLE上演示

if ($('select option#2').text().indexOf('and white') > 0){
  $('select option#2').text('black');
}