我有一个购物车,在一个下拉菜单中显示产品选项,如果他们选择"是",我想让页面上的一些其他字段可见。
问题是,购物车还包括文本中的价格修饰语,每个产品的价格都可能不同。下面的代码可以工作。
$(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();
}
});
});
我只想在选定的选项包含"Yes"字样时执行该动作,而忽略价格修饰语。
像这样。
if (str.indexOf("Yes") >= 0)
......或者你可以使用tilde运算符。
if (~str.indexOf("Yes"))
这样做是因为indexOf()
返回-1
,如果根本就没有找到这个字符串。
注意,这是对大小写敏感的。
如果你想进行不区分大小写的搜索,你可以这样写
if (str.toLowerCase().indexOf("yes") >= 0)
或者。
if (/yes/i.test(str))
另一种方式。
var testStr = "This is a test";
if(testStr.contains("test")){
alert("String Found");
}
在Firefox、Safari 6和Chrome 36上测试