Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javascript单击选择HTML元素_Javascript_Html_Dom Events_Getelementsbyclassname - Fatal编程技术网

使用Javascript单击选择HTML元素

使用Javascript单击选择HTML元素,javascript,html,dom-events,getelementsbyclassname,Javascript,Html,Dom Events,Getelementsbyclassname,我试图在控制台(Chrome)中使用Javascript在一个页面上点击,但是我被第一个选择元素“make”下拉框卡住了。最终目标是选择一个品牌和型号,然后点击下一步按钮 下面是HTML的外观(去掉了一些选项): 单击带有类的div: document.getElementsByClassName('css-k9vu0d-SelectWrapper-body-VehiclePickerInput e1019m8z0')[0].click() document.getElementsByClas

我试图在控制台(Chrome)中使用Javascript在一个页面上点击,但是我被第一个选择元素“make”下拉框卡住了。最终目标是选择一个品牌和型号,然后点击下一步按钮

下面是HTML的外观(去掉了一些选项):

单击带有类的div:

document.getElementsByClassName('css-k9vu0d-SelectWrapper-body-VehiclePickerInput e1019m8z0')[0].click()
document.getElementsByClassName('css-1qn61q8-StyledHiddenSelect e1euwze60')[0].click()
设置选择元素值:

document.getElementsByClassName('css-1qn61q8-StyledHiddenSelect e1euwze60')[0].selectedIndex = 6

您不能通过编程方式单击
元素来“打开”该
元素

您可以以编程方式设置select的值

const select=document.querySelector('.css-1qn61q8-StyledHiddenSelect.e1euwze60');
select.value=“阿尔法·罗密欧”

宝马
阿库拉
阿尔法罗密欧
阿斯顿马丁

您不能通过编程方式单击
元素来“打开”该
元素

您可以以编程方式设置select的值

const select=document.querySelector('.css-1qn61q8-StyledHiddenSelect.e1euwze60');
select.value=“阿尔法·罗密欧”

宝马
阿库拉
阿尔法罗密欧
阿斯顿马丁

-请阅读我们的页面和您的问题以改进它。好的问题往往会得到社区更快、更好的回答。首先,请为您的问题添加一个答案。否则,可能需要更多的时间和大量的猜测才能准确地找出问题所在。-请阅读我们的页面和您的问题以改进它。好的问题往往会得到社区更快、更好的回答。首先,请为您的问题添加一个答案。否则,可能需要更多的时间和大量的猜测才能准确地找出问题所在。getElementsByClassName可以处理多个类名。这是真的,以编程方式单击select元素将不起作用。谢谢您的回答。我已经试过你的代码了。页面上select元素中实际显示的内容不会改变。它仍然写着“制造”。如果我在控制台中询问它的价值,它会说“阿尔法·罗密欧”。这是怎么回事?@lhoro谢谢你的提醒。我不知道。@Branden看到上面的类名部分
StyledHiddenSelect
,我想您在浏览器中看到的不再是本机
select
元素。尝试使用浏览器的开发人员工具进行检查。您的页面似乎有一些Javascript隐藏了本机select元素(大多数站点这样做是因为它们不能接受本机select元素的非样式性),而是放置了一个只看起来像select元素的替换结构。getElementsByClassName可以处理多个类名。这是真的,以编程方式单击select元素将不起作用。谢谢您的回答。我已经试过你的代码了。页面上select元素中实际显示的内容不会改变。它仍然写着“制造”。如果我在控制台中询问它的价值,它会说“阿尔法·罗密欧”。这是怎么回事?@lhoro谢谢你的提醒。我不知道。@Branden看到上面的类名部分
StyledHiddenSelect
,我想您在浏览器中看到的不再是本机
select
元素。尝试使用浏览器的开发人员工具进行检查。您的页面似乎有一些Javascript隐藏了本机select元素(大多数站点这样做是因为它们不能接受本机select元素的非样式性),而是放置了一个只看起来像select元素的替换结构。
document.getElementsByClassName('css-1qn61q8-StyledHiddenSelect e1euwze60')[0].selectedIndex = 6