Javascript 如何获取下拉项的值(非select option语句)

Javascript 如何获取下拉项的值(非select option语句),javascript,html,css,drop-down-menu,Javascript,Html,Css,Drop Down Menu,如果我已经下载了 <select id="city"> <option value="blore">Bangalore</option> <option value="delhi">Delhi</option> <option value="che">Chennai</option> <option value="jaipur">Jaip

如果我已经下载了

<select id="city">
        <option value="blore">Bangalore</option>
        <option value="delhi">Delhi</option>
        <option value="che">Chennai</option>
        <option value="jaipur">Jaipur</option>
        <option value="hyd">Hyderabad</option>
        <option value="mum">Mumbai</option>
        <option value="pune">Pune</option>
</select>
但是,由于我们无法设置选择选项下拉列表的样式,我想知道是否有任何方法可以定义一个列表类型下拉列表,并提取用户在javascript中选择的值

差不多。 (使用列表的下拉列表)

  • something1
  • something2
  • something3
document.getElementById('city')。值

请纠正我,如果我错了,或者有任何其他方法来定义一个样式化的下拉菜单,其值可以在javascript中提取以进行处理

如果需要更多的代码,请在注释中注明


提前感谢:)

由于您基本上希望模拟表单元素的功能而不使用表单元素,因此需要在javascript中进行一些额外的工作。jQuery将大大简化这一点,因此我将在本例中使用它。如今,想要将任意数据附加到html元素的常见做法是使用前缀为“data-”的属性。你马上就会明白为什么了

因此,对于您的示例,您可以使用以下标记:

<ul id="city" data-value="">
<li data-value="something1">Something1</li>
<li data-value="something2">Something2</li>
<li data-value="something3">Something3</li>
</ul>
这是利用jQuery的.data()方法作为设置和获取数据属性的快捷方式

您现在可以通过调用以下命令访问当前选定的值:

$('#city').data('value');

如果没有jQuery,则会涉及更多内容。我会让你自己决定,你是否认为寻求一个普通的js解决方案有用。

对不起,你的问题对于这个网站来说太广泛了。创建一个真正有用的下拉列表,并且不会产生比它解决的问题更多的问题,这要复杂得多。OP应该使用专业的现成解决方案。你的意思是像我链接的引导程序一样?我的意思是,我完全支持使用充实的、经过战斗测试的组件作为下一个家伙,但也许OP只是想了解它是如何完成的?我不认为做一点思考练习和辅导有什么错。如果你在回答中缺乏所教的知识,OP甚至不可能创建自己的下拉列表。你不应该鼓励OP,他们应该先学习基础知识。他们并不是说他们将在下一个全球银行业务中使用它,ICBM空间站控制器。为什么不让别人从怀疑中受益,让人们去试验和学习呢?这就是编程的意义所在,排他性直接违背了本网站的全部目的。如果他们的问题是重复的,无论如何都要这样对待。但我无法理解,解雇一个试图学习基础知识的人是如何高效或礼貌的。如果OP想学习,他们就不会问这个问题。OP正在找codez。该网站的目的不是向那些自己无法阅读基本教程的人传授基本知识,而且从来没有这样做过。在这里你真的帮不上忙,因为这个问题的好答案是一整本书(甚至更多,取决于OP目前的知识)。
<ul id="city" data-value="">
<li data-value="something1">Something1</li>
<li data-value="something2">Something2</li>
<li data-value="something3">Something3</li>
</ul>
$('#city li').click(function() {
  $(this).parent().data('value', $(this).data('value')); 
});
$('#city').data('value');