如何使用“this”关键字而不是元素ID?

时间:2011-07-28 04:49:54

标签: javascript jquery

我正在开发一个网络应用,我在其中删除select中的所有元素,使用:

$('#State option').each(function(i, option){ $(option).remove(); });

如何使用this关键字代替'#State'?

来自OP评论:
我有多个下拉元素。聚焦时,我必须调用一个函数来删除当前所选下拉列表中的所有元素

3 个答案:

答案 0 :(得分:0)

我想我知道你要问的是什么。您想要删除页面上每个下拉列表的所有元素吗?如果是这种情况,请使用以下代码:

$('select option').remove();

您可以使用$(this)在迭代时引用非常下拉列表,但这对于您要完成的操作是不必要的。下面是使用$(this)和iteration的无效方法:

$('select').each(function () { $(this).find('option').remove(); })

答案 1 :(得分:0)

  

我有多个下拉元素。聚焦时,我必须调用一个函数来删除当前所选下拉列表中的所有元素。

我不知道这是不是很好的UI设计,但假设它是需要的......

//--- When any select is focused, this will remove all options from just that select.
$('select'). bind ("focus", function () {
    $(this).find ('option').remove ();
}

答案 2 :(得分:0)

替代解释:

  

我如何使用此关键字代替'#State'

在下面我假设您已经在this引用带有id = State的DOM元素的上下文中。在那种情况下,

$('option', this).each(function(i, option){ $(option).remove(); });

将等同于:

$('#State option').each(function(i, option){ $(option).remove(); });

在此,我们利用jQuery()的{​​{3}}签名。