如果我需要使用动态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;
}
})
});
});
答案 0 :(得分:2)
$(this.id).val(value);
不起作用,因为您必须在选择器中使用#
前缀来指示您要搜索ID。 this.id
只有ID,前面没有#
。
$(this).val(value);
应该有用,我不明白为什么你认为它没有。
以$
开头的变量没什么特别之处。但是一些程序员喜欢将它用作包含jQuery对象而不是普通DOM元素或普通值的变量的命名约定。
答案 1 :(得分:1)
如果有效
var element=this.id;
$('#'+element).val(value);
那么这也应该有用
$('#' + this.id).val(value);
和这个
$(this).val(value);
变量前面的美元符号通常用于表示变量是围绕DOM元素的jQuare包装:
var $elem=$(this);