如何在“if”语句中使用$(this)而不是下面代码中的完整选择器。我尝试了一些“这个”用法的不同组合,但都没有用。其中有......
if ($("this :selected").text().indexOf("[Subtract") >= 0){
if ($(this" :selected").text().indexOf("[Subtract") >= 0){
我确信它必须非常简单,我今天无法理解。
<script type="text/javascript" language="javascript">
$(document).ready(function(){
$("select[name^=SELECT___]").change(function() {
if ($("select[name^=SELECT___] :selected").text().indexOf("[Subtract") >= 0){
alert('');
}
});
});
</script>
答案 0 :(得分:3)
使用$(this)
上的find
method查找this
后代的特定元素:
$(this).find(":selected").text().indexOf("[Subtract")
答案 1 :(得分:3)
您可以指定this
作为选择器的上下文:
$(":selected",this)
但它最终只会被转变为into @Gumbo's answer。这样会更有效率。
最终,我也不会使用。如果您确实需要选择<option>
,这将是另一种方法:
this.options[ this.selectedIndex ].text.indexOf(...;
由于this
是<select>
元素,因此您使用其options
属性存储选项数组,并使用其selectedIndex
属性从中获取选定的元素。 options
。
然后使用<option>
元素的text
属性来获取文本。
这种方式效率更高。
答案 2 :(得分:2)
$(本).filter( ':选择')
答案 3 :(得分:2)
答案 4 :(得分:0)
jQuery'is'选择器似乎做你想要的,虽然我还没有检查过:http://api.jquery.com/is/
if($(this).is(":selected").text().indexOf("[Subtract") >= 0){ ... }