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

Is using THIS more efficent than using the selector?

本文关键字:有效 选择器 THIS 使用      更新时间:2023-09-26

我有一个简单的表单,所以用户可以发送他的投票
在那里我需要知道用户选择了什么单选按钮
我找到的解决问题的版本是这样的。如何通过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);

但我无法制作第二个版本。第二个值使我未定义。

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

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

您的第一个示例显示了一个从上下文选择器操作的选择器,而您所展示的文档显示了"多个选择器"选择器。

你似乎已经部分理解了

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

基本上与相同

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

然而,函数中"this"的上下文并不清楚,因为它取决于ajaxForm插件的编码方式。它不一定是初始选择器的结果。在对插件进行了简短的演示后,ajaxForm上下文中的this似乎是jQuery ajax请求对象。