问题

我有一个购物车,在下拉菜单中显示产品选项,如果在上一个选项中选择"是",我想在页面上显示其他字段.问题是购物车还在文本中包括价格修饰符,并且对于每个产品可以是不同的.所以,如果我这样做它的工作原理:

$(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();
        }
    });
});

这不工作.

我只想执行操作,如果所选的选项包含单词"是",将忽略价格修饰符.

我很感激任何帮助.



解决方法

像这样:

if (str.indexOf("Yes") >= 0)

...或您可以使用波形操作符:

if (~str.indexOf("Yes"))

这样做是因为 indexOf()如果没有找到字符串,则返回 -1

请注意,这是区分大小写的.
如果您想要不区分大小写的搜索,可以写

if (str.toLowerCase().indexOf("yes") >= 0)

if (/yes/i.test(str))



相关问题推荐