-1

我正在尝试获取选择的值。

该选择具有由 CMS 生成的长计算 ID,因此我需要使用 *= 来获取具有包含“mySelect”的 ID 的选择。

如果这个选择的值是单词'Select'(这意味着你没有选择一个选项),那么做一些事情。如果在其他选择中选择了其他选项,我还需要在其他地方重复此操作,这只是一个示例。这是我的代码...

var selectValue = $('select[id*="mySelect"]').val();  
console.log(selectValue)  
if ((selectValue + ':contains("Select")')) 
    {
    $alert('select chosen');
}
else {
    $alert('other chosen');
}

这一切都包含在一个在文档就绪时调用的函数中,并且在更改选择时也是如此。

例如,当我在选择中选择一个选项时,控制台日志将 selectValue 显示为“1”,但仅显示选择的警报。

我也尝试过这种方式,它确实有效,但仅在 Firefox 中有效。在所有其他浏览器中,我收到控制台错误“对象不支持属性或方法“包含”。

var selectValue = $('select[id*="mySelect"]').val();  
if (selectValue.contains('Select')) 
    {
    $alert('select chosen');
}
else {
    $alert('other chosen');
}

请问有什么建议吗?我需要使用一些包含的方法来处理很多事情,这只是一个例子。

4

1 回答 1

1

检查一个字符串是否包含另一个字符串的标准方法是indexOf

if ( selectValue.indexOf( 'Search' ) > !== -1 ) {

ECMAScript 6.contains()方法使这个检查更简单(并且更具可读性),但到目前为止它只在 Firefox 中实现:

于 2013-02-05T14:09:57.070 回答