使用THIS比使用选择器更有效吗?

时间:2015-03-17 15:42:02

标签: javascript jquery html

我有一个简单的表格,所以用户发送他的投票。
在那里,我需要知道用户选择的单选按钮 我发现解决它的版本就是这个。 How can I get which radio is selected via jQuery?

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

这项工作还可以。即使我不理解这项工作的原因,因为在Jquery选择器文档中只有2个示例,其中项目由昏迷分隔。并且都不匹配我的示例,其中每个元素都在引号内,然后是昏迷

  

.class,.class ---> $(“。intro,.demo”)所有带有“intro”或“demo”类的元素
  el1,el2,el3 ---> $(“h1,div,p”)全部< h1>,< DIV>和< p为H.元素

两者看起来都像是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 个答案:

答案 0 :(得分:1)

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

您似乎已将此部分理解为

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

基本相同

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

但是,函数中“this”的上下文不清楚,因为它取决于ajaxForm插件的编码方式。它不一定是您的初始选择器的结果。在使用插件进行短暂播放后,this上下文中的ajaxForm似乎是jQuery ajax请求对象。