getElementById-Javascript
我正在使用GoogleAutoCompleteJavaScript代码来完成地址。它跟踪输入字段,获取IdgetElementById-Javascript,javascript,html,Javascript,Html,我正在使用GoogleAutoCompleteJavaScript代码来完成地址。它跟踪输入字段,获取Iddocument.getElementById('addressField')。 我遇到的问题是,输入字段的id看起来像myForm:j_idt329:addressField。 我需要在许多不同的页面这个。因此id每次看起来都不一样,但总是在末尾包含单词addressField。 是否有另一种方法来获取元素?也许用正则表达式? 以下是完整的javascript: function init
document.getElementById('addressField')
。
我遇到的问题是,输入字段的id看起来像myForm:j_idt329:addressField
。
我需要在许多不同的页面这个。因此id每次看起来都不一样,但总是在末尾包含单词addressField
。
是否有另一种方法来获取元素?也许用正则表达式?
以下是完整的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']")
如果我没记错的话,选择器中的*=
运算符会查找包含地址字段的元素
如果您试图获取这些元素的多个节点列表,只需使用querySelectorAll
。前者只返回列表的第一个节点,all
返回整个列表
正如Lucas在评论中所说:$=
将匹配属性的结尾。两者都可以工作,但不能100%确定其中一个是否比另一个好。更好的是,$=
将仅在属性以给定字符串结尾时匹配。@Lucastzesniewski这也是肯定的!我想知道是否有速度差?当然,你会得到一微秒的提高:)这是我以前没有的一整微秒!谢谢@Archer。很有魅力!!