jquery 这个、$这个、$element 和 $('#''+element)

jquery this, $this, $element and $('#''+element)

如果我需要使用动态 ID,我会执行以下操作...

var element=this.id
$('#'+element).val(value)

但是为什么这样的东西不起作用,还有另一种表达 jquery id 的方法吗?

(this.id).val(value)
$(this).val(value)

用'$'创建变量有什么用?

var $elem=foo

我知道这可能是 jquery 101,但我无法在任何地方找到答案,可能是因为不知道要搜索什么!

这是我正在处理的代码示例,其中 $(this).val(value) 不起作用,但 $('#'+nextInput).val(value) 起作用...

$(function(){                                                                                
    $('.copyText').keyup(function(){
        var inputStart=this.id
        var value=this.value
        var allInputTexts=$('#body').find('input[type=text]:enabled:not([readonly])');

        allInputTexts.each(function(index, item){
            var matchingInput=this.id

            if (inputStart==matchingInput) {
                var nextInput=allInputTexts[index+1].id
                //$('#'+nextInput).val(value)
                $(this).val(value)
                //return false;
            }
        })
    });
});

如果可行

var element=this.id;
$('#'+element).val(value);

那么这也应该有效

$('#' + this.id).val(value);

还有这个

$(this).val(value);

变量前面的美元符号通常用于表示该变量是 DOM 元素周围的 jQuare 包装器:

var $elem=$(this);
$(this.id).val(value);

不起作用,因为您必须在选择器中使用 # 前缀来指示您要搜索 ID。 this.id只有ID,前面没有#

$(this).val(value);

应该可以,我不明白你为什么认为不行。

$开头的变量没有什么特别之处。但是一些程序员喜欢将其用作包含 jQuery 对象而不是普通 DOM 元素或纯值的变量的命名约定。