在jQuery中,使用额外的选择器$(this)

时间:2017-06-29 16:15:09

标签: jquery

我有一个jQuery函数来返回格式的复选框的值:

$.fn.selected_values = function() {
    return $(this).map( function() { if( $(this).is(':checked') ) { return this.value; } } ).get().join(",");
};

我想知道是否有一种不那么麻烦的方式来说“$ this,再加上另一个标准”。换句话说,不是在循环中使用if( $(this).is('checked'){...},是否有某种方式可以说$(this):checked之类的内容?然后我可以做类似的事情:

$.fn.selected_values = function() {
    return $(this):checked.map( function() { return this.value; } ).get().join(",");
};

现有代码确实有效,但似乎随着时间的推移,这样的选择器可能会产生更易读的代码。它存在吗?

2 个答案:

答案 0 :(得分:2)

您正在寻找filter method,它会过滤jQuery对象,只包含与选择器匹配的元素。

旁注:在jQuery方法中,this已经是一个jQuery对象(就像任何其他类实例方法一样);没有理由写$(this)

答案 1 :(得分:0)

以这种方式使用:checked选择器:

$('input.email_toggle:checked')