使用jQuery以id为目标隐藏输入

时间:2013-05-03 15:39:47

标签: jquery input hidden-field

由于某种原因,我无法使用jQuery通过id检索隐藏的输入。

我能做到

> $('input')
[<input type=​"checkbox" name=​"property-type" id checked>​, <input type=​"checkbox" name=​"property-type" id checked>​, <input type=​"checkbox" name=​"property-type" id>​, <input type=​"checkbox" name=​"property-type" id>​, <input type=​"hidden" name=​"no-of-rooms" id=​"1-rooms">​, <input type=​"hidden" name=​"no-of-rooms" id=​"2-rooms" checked>​, <input type=​"hidden" name=​"no-of-rooms" id=​"3-rooms" checked>​, <input type=​"hidden" name=​"no-of-rooms" id=​"4-rooms">​, <input type=​"hidden" name=​"no-of-rooms" id=​"5-rooms">​, <input type=​"hidden" name=​"no-of-rooms" id=​"over-5-rooms">​, <input type=​"checkbox" name=​"property-type" id>​, <input type=​"checkbox" name=​"property-type" id>​, <input type=​"checkbox" name=​"property-type" id>​]

可以很好地获取页面上的所有输入,包括type = hidden。

我也可以

> $('input[type="hidden"]')
[<input type=​"hidden" name=​"no-of-rooms" id=​"1-rooms">​, <input type=​"hidden" name=​"no-of-rooms" id=​"2-rooms" checked>​, <input type=​"hidden" name=​"no-of-rooms" id=​"3-rooms" checked>​, <input type=​"hidden" name=​"no-of-rooms" id=​"4-rooms">​, <input type=​"hidden" name=​"no-of-rooms" id=​"5-rooms">​, <input type=​"hidden" name=​"no-of-rooms" id=​"over-5-rooms">​]

它让我得到了所有隐藏的字段。请注意,他们都有一个id。

出于某种原因,尝试按照其ID定位这些输入,无论是否包含[type="hidden"],都会为我提供一个空列表。

> $('input[type="hidden"]#2-rooms')
[]
> $('input#2-rooms')
[]

我设法找到了一种解决方法,只是没有通过ID来定位它们,但知道为什么这似乎不可能会很有用。

修改

仅使用$('#2-rooms')对我有用,显然是最好的方法。 但是,我仍然不确定$('input#2-rooms')为什么不起作用,因为我实际上包含了html5 doctype(<!DOCTYPE html>),并且我理解以数字开头的ID应该在这种情况下没关系。

1 个答案:

答案 0 :(得分:1)

使用属性选择器可以使用通配符,而不是使用id选择器。

$('[id$=rooms]')

或者,对包含

使用*
$('[id*=rooms]')

或者,如果您有包含ID的单个元素, live demo

 $('#2-rooms')

编辑如果你有一个带id的单个元素,那么你可以简单地使用id选择器$('#2-rooms')如果有多个元素具有相同的id,那么它就不是有效的html你应该有唯一的id。如果您的ids有2个房间,3个房间的模式,那么您可以使用带外卡的属性选择器。