我有一个在下拉菜单中显示产品选项的购物车,如果他们选择"is",我想让页面上的其他一些字段可见。
问题是购物车在文本中还包含价格修饰符,每个产品的价格修饰符可能不同。以下代码有效:
$(document).ready(function() {
$('select[id="Engraving"]').change(function() {
var str = $('select[id="Engraving"] option:selected').text();
if (str == "Yes (+ $6.95)") {
$('.engraving').show();
} else {
$('.engraving').hide();
}
});
});
但是我宁愿使用这样的东西,它不起作用:
$(document).ready(function() {
$('select[id="Engraving"]').change(function() {
var str = $('select[id="Engraving"] option:selected').text();
if (str *= "Yes") {
$('.engraving').show();
} else {
$('.engraving').hide();
}
});
});
我只想在所选选项包含"is"字样时执行该操作,并且会忽略价格修饰符。
最佳答案
像这样:
if (str.indexOf("Yes") >= 0)
...或者您可以使用波浪号运算符:
if (~str.indexOf("Yes"))
这是可行的,因为如果根本找不到字符串,indexOf()
会返回 -1
。
请注意,这是区分大小写的。
如果你想要一个不区分大小写的搜索,你可以写
if (str.toLowerCase().indexOf("yes") >= 0)
或者:
if (/yes/i.test(str))
后者是正则表达式或regex。
正则表达式分解:
/
表示这是一个正则表达式yes
表示正则表达式将按照确切的顺序找到那些确切的字符/
结束正则表达式i
将正则表达式设置为区分大小写.test(str)
判断正则表达式是否匹配str
总而言之,这意味着它将查看是否可以按照确切的顺序找到字母y
、e
和s
,大小写——不敏感地,在变量str
关于javascript - 如何检查字符串是否包含子字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3480771/