我正在使用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%地确定一个是否比另一个更好。

10-06 02:50