javascript 使用_拆分选定值

brqmpdu1  于 2023-02-11  发布在  Java
关注(0)|答案(2)|浏览(102)

我正在使用我的网页设计材料css。我有一个单一的选择国家下拉列表和值

<select id="select_id" name="select_id" required>
  <option value="8">select1_1</option>
  <option value="15">select2_2</option>
</select>
$(document).ready(function() {
   $('select').formSelect();
 });

我的选择选项是从值中有下划线的数据库填充的。我希望在运行时在客户端更新选择选项值,并从选项中删除下划线。

<select id="select_id" name="select_id" required>
  <option value="8">select1</option>
  <option value="15">select2</option>
</select>

有没有更好的方法来更新它使用jQuery.谢谢帮助

ttisahbt

ttisahbt1#

虽然在源代码处进行更改是更好的解决方案,但您可以使用接受函数的.text()重载来更新选项的 * text *:

$("select option").text((i, txt) => txt.replace(/_.*$/, ''))
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="select_id" name="select_id" required>
  <option value="8">select1_1</option>
  <option value="15">select2_2</option>
</select>

从选项中删除下划线
上面的代码与您的示例匹配,该示例删除了下划线及其后面的内容,只删除了下划线:

$("select option").text((i, txt) => txt.replace(/_/g, ''))
hkmswyz6

hkmswyz62#

您应该保留原始值作为<option>标签的“value”属性。对于选项文本,最好的处理方法是创建一个解析器parseOptionText(optionText: string): string,这样您就可以完全控制解析的逻辑,并且代码易于维护。
最终结果应该是:

<option value={originalValueFromDB}>parseOptionText(originalValueFromDB)</option>

还有

const parseOptionText = (optionText: string): string => {
    return optionText.replace('_', '');
}

相关问题