使用change()和contains()与HTML <select>(jQuery)

我正在对<select>下拉列表中的值进行更改。 我在这里简化了代码以获得总体思路。 这里是我所得到的(如果您有任何疑问,请告知我;我知道我在这里没有显示'select_text',但我不认为这是完全必要的,我必须解开一堆代码以简化这里):

var select_option_select = select_text.parent().find('select');

select_option_select.change(function(){
    var changed_value = select_text.parent().find('select option[value="' + $(this).val() + '"]').text();
});

//THIS IS WHERE THE IMAGE CHANGES
if(changed_value=="Standard Crossline Grips (free)"){
    $('#grip_image').attr('src','/v/vspfiles/images/grip_image.jpg');
}

我知道这是有效的,但由于它的设置方式,更改后的值的字符串必须与我在IF语句中输入的值完全相同。 我一直在尝试使用'包含',所以它会给我在网站上前进的更多灵活性。 我知道我不能在text()值上使用'contains',所以我像这样重写它(请注意,我摆脱了text()函数):

var select_option_select = select_text.parent().find('select');

select_option_select.change(function(){
    var changed_value_2 = select_text.parent().find('select option[value="' + $(this).val() + '"]');
});

//THIS IS WHERE THE IMAGE CHANGES
if(changed_value_2.contains("Standard Crossline Grips (free)")){
    $('#grip_image').attr('src','/v/vspfiles/images/grip_image.jpg');
}

这给了我错误:

Uncaught TypeError: Object #<Object> has no method 'contains'

我猜这意味着它不能识别任何'选项',而changed_value_2实际上并没有返回任何东西?

我希望我已经解释得很好。 如果您有任何问题,请告诉我。 非常感谢你的帮助。


这可能是你想要的:

if(changed_value.indexOf("Standard Crossline Grips") >= 0){
    $('#grip_image').attr('src','/v/vspfiles/images/grip_image.jpg');
}

要么

if(changed_value.indexOf("(free)") >= 0){
    $('#grip_image').attr('src','/v/vspfiles/images/grip_image.jpg');
}

资源

链接地址: http://www.djcxy.com/p/74101.html

上一篇: Using change() and contains() with an HTML <select> (jQuery)

下一篇: Detect character in div and remove it Javascript or jQuery