使用JavaScript访问div中的嵌套值

使用JavaScript访问div中的嵌套值,javascript,google-analytics,google-tag-manager,Javascript,Google Analytics,Google Tag Manager,我在运行一些基本的JavaScript时遇到了一个问题。我最近刚开始使用JavaScript,所以我还没有完全掌握它。我想要实现的是在表单/表的div中返回选项选择器的值 我正在使用Google Tag Manager向Google Analytics发送数据,并尝试使用内置的自动事件侦听器和自定义JavaScript宏 基本上,有三个不同的选择器,它们都有不同的值。这些都在一个表中,表中有选择项 如何使用JavaScript从三个不同选择器中的每一个获取所选值 我正在努力解决的问题是,选择器本

我在运行一些基本的JavaScript时遇到了一个问题。我最近刚开始使用JavaScript,所以我还没有完全掌握它。我想要实现的是在表单/表的div中返回选项选择器的值

我正在使用Google Tag Manager向Google Analytics发送数据,并尝试使用内置的自动事件侦听器和自定义JavaScript宏

基本上,有三个不同的选择器,它们都有不同的值。这些都在一个表中,表中有选择项

如何使用JavaScript从三个不同选择器中的每一个获取所选值

我正在努力解决的问题是,选择器本身没有用于将它们分开的ID,但父元素至少有一个唯一的div ID

我将尝试对它的外观进行可视化:

<form>
  <div id="selection1">
   <table ... >
    <select>
     <option>Option 1</option>
     <option>Option 2</option>
     <option>Option 3</option>
   </select>
  </table>
 </div>

  <div id="selection2">
   <table ... >
    <select>
     <option>Option 1</option>
     <option>Option 2</option>
     <option>Option 3</option>
   </select>
  </table>
 </div>

  <div id="selection3">
   <table ... >
    <select>
     <option>Option 1</option>
     <option>Option 2</option>
     <option>Option 3</option>
   </select>
  </table>
 </div>
</form>

但是我需要为三个不同的选择中的每一个设置这个,你可以从中选择一些东西。我只是没有足够的悟性去理解如何编写一个JavaScript来计算人们在三个不同选项中选择了什么并返回它的值

好的,首先让我们改进您的代码:

永远不要在id=NoSpacesAllowed中使用空格 类名中的空格用于定义多个类class=class1 class2 class3 3.应始终在选项标记中提供值属性。这是一些随机文本 但是,任何用户都可以更改这些值,因此您可以读取修改后的值 像我这样的一些人经常修改这样的cliend代码,以查看它是否破坏了任何功能 永远不要将这些值直接存储到数据库中!检查内容或值是否有效,否则可能会出现BIIIG问题。我的意思是大问题! 一般做法:

var selects = document.getElementById("myselect");
var selectedValue = selects.options[selects.selectedIndex].value;// will gives u "xy"
var selectedText = selects.options[selects.selectedIndex].text;// gives u "This is some random text" but you should not use this<br><br>
您可能希望使用类似的方法:

    var selects = document.querySelector("#selection1 select"); //This will return the first <select> inside the specified id. You may need to adjust that selector...

var selectedText = selects.options[selects.selectedIndex].text;

谢谢你的意见。关于div id的一个简单提示是,它实际上并没有包含空格,这只是我写的一个草率的示例:但这给我带来了另一个问题,因为我自己还没有编写代码。它们不为选项使用任何值。你能解释一下为什么不应该使用文本吗?我认为使用.text可能是我的选择,因为我没有权限更改代码。哦,你没有权限访问html,那么…你可以获得选项标记的文本innerHtml,因为你可以获得每个html标记的innerHtml。但这并不意味着您应该使用innerHtml。文本只是一种视觉表现,对用户来说是一种模仿,但它与代码的逻辑无关。这就是option标记具有value属性的原因。通过这种方式,您可以将视觉和用户感兴趣的部分从数据中分离出来。你应该一直朝着这个目标努力。始终将可视部分与内部数据部分分开。但您可能毕竟必须使用文本……另外,我是否真的应该使用var selects=document.getElementByIdmyselect;?当我尝试时,它似乎无法工作。因为我想得到div中的选项值,当然,但它似乎不起作用。该值返回为未定义。也许我可以用document.getElementsByTagNameselect?因为我使用[0]工作,但我不知道如何使用一个代码获取其他两个。啊,对不起。我想你可以玩一下选择器。尝试此操作以获取元素:var selects=document.queryselectorselection 1 select我将更新答案…我将尝试一下。非常感谢迄今为止所有的帮助!
    var selects = document.querySelector("#selection1 select"); //This will return the first <select> inside the specified id. You may need to adjust that selector...

var selectedText = selects.options[selects.selectedIndex].text;