Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.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访问单个选项的多个值_Javascript_Html - Fatal编程技术网

使用javascript访问单个选项的多个值

使用javascript访问单个选项的多个值,javascript,html,Javascript,Html,我有一个相当复杂的选项查找。它来自一个单独的系统,我真的需要跟踪两个数据段,而不是只发送一个数据段,并且必须进行额外的查找,这是非常昂贵的。理想情况下,我希望将从一个AJAX调用接收到的所有数据传递到另一个AJAX调用 标准材料: <select name="chosen_option" id="chosen_option"> <option value="apple">Option One</option> </select> 我知道我有很

我有一个相当复杂的选项查找。它来自一个单独的系统,我真的需要跟踪两个数据段,而不是只发送一个数据段,并且必须进行额外的查找,这是非常昂贵的。理想情况下,我希望将从一个AJAX调用接收到的所有数据传递到另一个AJAX调用

标准材料:

<select name="chosen_option" id="chosen_option">
  <option value="apple">Option One</option>
</select>
我知道我有很多方法可以根据我的搜索将额外数据放入选项中:

<option value="PartA:'apple',PartB:'450'">Option One</option>
<option data-partb="450" value="apple">Option One</option>
对于第一种方法,我不理解如何单独引用PartA或Partb,只引用选项的整个值

对于第二种方法,选择器无法从所选选项中获取该特定属性。它说未定义

向每个选项添加ID也不允许我获取它:

<option id="optionid_apple" data-partb="450" value="apple">Option One</option>

$("#optionid_apple").attr('data-partb)  // Not working
$("#optionid_apple").data('partb') // Not working
$("#optionid_apple").data('data-partb') // Not working
如何在一个选项上存储多个数据段并用Javascript访问它


另一方面,我曾考虑将该值本身设置为XML文档,但我真的不知道如何在HTML中正确地执行此操作,等等。

使用此选项以确保获得所选选项

$("#chosen_option option:selected").data('partb')

否则,您将尝试从标记中获取属性。

选择元素的id将被选中\u选项。但是,如果不是这样的话,我会这样做。您在option元素上显示的带有id的代码应该可以工作。至少,$optionid_苹果。数据“partb”应该可以工作$optionid_apple.attr'data-partb如果你在上一个月之前没有留下一个报价的话就可以了。虽然当我说work时,我的意思是它应该返回一个值,但这不是一个实际的解决方案,因为您首先需要以某种方式确定所选选项的id。最后有一句话。这些尝试都没有成功,由于id是特定的,所以id是令人困惑的。下面是一个简单的工作代码示例,它检索所选选项的值和数据部分B:基本上与Jonas Persson的答案相同,只是我不喜欢使用.data来检索属性值,因为我不喜欢它的类型转换。如果类似的操作对您不起作用,请发布实际代码的更大摘录,以显示您执行这些操作的上下文。@nnnnn-将选项:selected添加到选择器允许我获取数据partb。我已经开始在我的生产代码中使用.data和修改过的选择器。在类型转换方面,您发现了哪些挑战?再次感谢,顺便说一句。我遇到的唯一问题是,如果属性包含一个带前导零的字符串,通常是某种形式的id或时间戳,如data id=0142,那么data'id'将返回数字142。我不希望每个人都跟着我,但我更喜欢使用.attr来获取属性值,而.data只用于获取我以前通过.data存储的值。这有助于我自己保持头脑清醒,即使不考虑数据转换,也要注意,当您通过.data设置/存储值时,它不会创建属性。
$("#chosen_option option:selected").data('partb')