jQuery:需要使用ID包含* =选择器,总是1个元素,个别操作总是有效吗?

时间:2017-12-13 20:16:55

标签: jquery

在任何给定时间,我总是有一个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(),但在这种情况下,我知道没有列表。

1 个答案:

答案 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())