在任何给定时间,我总是有一个ID为元数* = STARTTIME的DOM元素,例如
Element434291_STARTTIME
Element238721_STARTTIME
等
它们在DOM中被动态替换/重新创建,并且最多存在1个这样的元素,但我不知道它在该表达式的第1部分中的唯一ID。
在整个代码中,我使用*=
的单独操作,例如
$('input[id*=STARTTIME]).val()
$('input[id*=STARTTIME]).html('..')
这是否安全,val()
总是会返回1个元素?通常,如果有一个列表,我将不得不$('input[id*=STARTTIME])[0].val()
,但在这种情况下,我知道没有列表。
答案 0 :(得分:2)
用于获取值的几乎所有jQuery方法......如html()
,val()
,prop()
,css()
,{{1只返回集合中第一个匹配元素的值。
我所知道的唯一例外是attr()
,它返回集合中所有元素的连接文本。许多人想知道为什么这种方法的行为与其他方法不同
使用text()
作为getter,您将始终获得第一个元素的值。请注意,设置值都不是这样。设置时,该方法将应用于集合中的所有
val()
var $inputs = $('[id*=_STARTTIME]');
var value = $inputs.val();
console.log('# of matching elements=', $inputs.length);
console.log('val():' , value)
console.log('value equals first input value:', value=== $('input:first').val())