代码之家  ›  专栏  ›  技术社区  ›  Juan Carlos Oropeza

使用此选项是否比使用选择器更有效?

  •  2
  • Juan Carlos Oropeza  · 技术社区  · 11 年前

    我有一个简单的表单,所以用户可以发送他的投票。
    我需要知道用户选择了什么单选按钮。
    我找到的解决方法是这样的。 How can I get which radio is selected via jQuery?

    value = $('input[name=vote]:checked', '#frmSurvey').val();
    

    这行得通。即使我不明白它是如何工作的,因为在 Jquery 选择器文档只有两个示例,项目之间用逗号分隔。两者都不符合我的例子,每个元素都在引号内,然后是昏迷

    .class,.class--->$(“.intro,.demo”)类为“intro”或“demo”的所有元素
    el1、el2、el3-->$(“h1,div,p”)全部<h1>&书信电报;div>和<p>元素

    两者看起来都像OR选择器,而不是查找A 和 然后在A中找到B。

    所以,如果有人能告诉我选择器是什么类型的,我很想看看文档

    现在我正在考虑优化。如果我已经在函数中 #frmSurvey 如果我使用 this 要素

     $('#frmSurvey').ajaxForm(function () {                                
                value = $('input[name=vote]:checked', '#frmSurvey').val();
                console.log('working way ' + value);
    
                value = $(this).find('input[name=vote]:checked').val();
                console.log('testing way ' + value);
    

    但我无法使第二个版本生效。第二个值未定义。

    那么我如何修复第二个版本?

    第二个版本会比第一个更好吗?我的直觉告诉我,还是我太担心了?

    1 回复  |  直到 9 年前
        1
  •  1
  •   Klors    11 年前

    第一个示例显示了选择器从 context selector ,而您显示的文档显示 "multiple selectors" 选择器。

    你似乎已经部分理解了这一点

    value = $('input[name=vote]:checked', '#frmSurvey').val();

    基本上与

    value = $('#frmSurvey').find('input[name=vote]:checked').val();

    然而,函数中“this”的上下文并不清楚,因为它取决于 ajaxForm 插件已编码。它不一定是初始选择器的结果。在与插件进行了短暂的游戏之后 this 在 ajax表单 是jQuery ajax请求对象。