我正在使用Google自动完成javascript代码来完成地址。它跟踪获得ID document.getElementById('addressField')
的输入字段。
我的问题是输入字段的ID看起来像myForm:j_idt329:addressField
。
我需要在许多不同的页面中使用它。因此,id每次看起来都不同,但始终在最后包含单词addressField
。
还有另一种方法如何获取元素?也许使用RegEx?
这是完整的javascript:
function initialize() {
var input = document.getElementById('addressField');
var options = {
types: ['geocode']
};
var autocomplete = new google.maps.places.Autocomplete(input, options);
}
google.maps.event.addDomListener(window, 'load', initialize);
提前致谢。
最佳答案
不需要正则表达式!您可以使用querySelector
document.querySelector("[id*='addressField']")
如果我没记错的话,选择器中的
*=
运算符会查找包含addressField
的元素如果要获取包含多个这些元素的节点列表,则只需使用
querySelectorAll
即可。前者仅返回列表的第一个节点,all
返回整个列表。正如卢卡斯在评论中所说:
$=
将匹配属性的末尾。两者都可以,但是不能100%地确定一个是否比另一个更好。