我有这个元素,它是由 mcssl 结账表单自动生成的。这是一个自定义字段。我正在尝试使用 javascript 来选择它,如下所示:
var form_field_gclid = document.getElementById("#ctl00_ctl00_mainContent_scPageContent_customFieldsControl_customFieldsRepeater_ctl00_customFieldTextBox");;
console.log(form_field_gclid);
<input name="ctl00$ctl00$mainContent$scPageContent$customFieldsControl$customFieldsRepeater$ctl00$customFieldTextBox" type="text" maxlength="200" size="50" id="ctl00_ctl00_mainContent_scPageContent_customFieldsControl_customFieldsRepeater_ctl00_customFieldTextBox" class="text">
但我得到 null
因此。我也尝试过,document.querySelectorAll(...);
但结果相同。当我从控制台尝试它时它可以工作,但我想知道为什么如果它在页面 javascript 上它就不起作用。任何想法,将不胜感激。谢谢。
我尝试去掉#号,但结果相同。
<script type="text/javascript">
(function() {
var form_field_test = document.getElementById("ctl00_ctl00_mainContent_scPageContent_customFieldsControl_customFieldsRepeater_ctl00_customFieldTextBox");;
console.log(form_field_test);
}());
</script>
这是我正在使用的完整脚本。
最佳答案
您在调用 document.getElementById
时不需要使用 #
。只需将其删除即可。
var form_field_gclid = document.getElementById("ctl00_ctl00_mainContent_scPageContent_customFieldsControl_customFieldsRepeater_ctl00_customFieldTextBox");
但是,如果您使用 jQuery,则需要它:
var myElement = $('#myElementId');
但是由于您使用的是普通 JS,只需将元素的 id
作为字符串传递即可。
关于javascript - 为什么我无法通过 id 属性识别该元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51844779/