javascript - 从选项中获取文本
问题描述
我有一个选择标签,我正在尝试获取我单击的选项的文本,因为我想使用该文本来执行一些任务:
我的html文件:
<select name="ciao" id="yui_3_17_2_1_1631285726939_22">
<option id="search" value="search" name="search">Giulia Totti</option>
<option id="search" value="search" name="search">annalisa costa</option>
<option id=" search" value="search" name="search">Isidoro Tricarico</option>
<option id="search" value="search" name="search">Carmela Maria
Graziano</option>
<option id="search" value="search" name="search">Chiara Dra</option>
<option id="search" value="search" name="search">Tommaso Condello</option>
<option id="search" value="search" name="search">Andrea Leoni</option>
<option id="search" value="search" name="search">Giulia Totti</option>
<option id="search" value="search" name="search">Adnan Al Aghawani</option>
<option id="search" value="search" name="search">Chiara Dra</option>
<option id="search" value="search" name="search">Serena Fossati</option>
</select>
我的 JS 文件:
function init() {
var me = $(this);
var meIndex = me.index();
$('select').click(function() {
console.log($('option').text());
})
}
$(document).ready(init);
**I also tried**
function init() {
var me = $(this);
var meIndex = me.index();
me.click(function() {
console.log(me.text());
})
}
$(document).ready(init);
我究竟做错了什么?
解决方案
听起来您想在选择时将所选选项的文本记录到控制台。那将是这样的:
$('#yui_3_17_2_1_1631285726939_22').on('change', function () {
console.log($(this).find('option:selected').text());
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select name="ciao" id="yui_3_17_2_1_1631285726939_22">
<option id="search" value="search" name="search">Giulia Totti</option>
<option id="search" value="search" name="search">annalisa costa</option>
<option id="search" value="search" name="search">Isidoro Tricarico</option>
<option id="search" value="search" name="search">Carmela Maria Graziano</option>
<option id="search" value="search" name="search">Chiara Dra</option>
<option id="search" value="search" name="search">Tommaso Condello</option>
<option id="search" value="search" name="search">Andrea Leoni</option>
<option id="search" value="search" name="search">Giulia Totti</option>
<option id="search" value="search" name="search">Adnan Al Aghawani</option>
<option id="search" value="search" name="search">Chiara Dra</option>
<option id="search" value="search" name="search">Serena Fossati</option>
</select>
基本上,您将响应元素的change
事件(而不是click
事件),<select>
并且在该事件中,您会在该元素中找到所选<option>
内容并获取其文本。
请注意:目前您的标记无效。您有多个具有相同id
. 虽然这不会导致此处构建的功能出现任何问题,但它很容易导致其他功能出现问题。始终使用有效的 HTML。在这种情况下,您可能希望删除所有这些id="search"
属性。
所有这些元素都具有相同的. 而且它们都不需要属性,只有表单元素本身需要它,它目前有()。<option>
value
name
name="ciao"
把所有这些放在一起,这对我来说更有意义,至少在这个问题中这段代码的有限上下文中:
$('#yui_3_17_2_1_1631285726939_22').on('change', function () {
console.log($(this).find('option:selected').text());
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select name="ciao" id="yui_3_17_2_1_1631285726939_22">
<option value="0">Giulia Totti</option>
<option value="1">annalisa costa</option>
<option value="2">Isidoro Tricarico</option>
<option value="3">Carmela Maria Graziano</option>
<option value="4">Chiara Dra</option>
<option value="5">Tommaso Condello</option>
<option value="6">Andrea Leoni</option>
<option value="7">Giulia Totti</option>
<option value="8">Adnan Al Aghawani</option>
<option value="9">Chiara Dra</option>
<option value="10">Serena Fossati</option>
</select>
但是,如果您有其他代码在某种程度上依赖于没有意义的部分,那么这种更改可能会破坏该代码。但我强烈建议您更正任何此类依赖项,以便您也可以更正此标记。
推荐阅读
- node.js - 在 TypeScript 中使用本机 JS 方法/调用的正确方法是什么
- javascript - 将滚动应用于特定 DIV
- apollo - Apollo 中的 client.query 和 useQuery 有什么区别?
- tags - 如何向 Svelte/Sapper 降价网站添加类别或标签?
- node.js - 是否可以将 node.js 控制台配置为在浏览器中可见
- python-3.x - python中的用户输入并检查输入是否匹配某些条件
- r - 有没有办法转换 data.table 以便唯一的行元素成为列名,然后显示元素计数?
- scripting - python 可以在网络浏览器中“读取”和识别“页面源代码”的一部分,而无需保存网页吗?
- mysql - 查找包含特定数字的行
- laravel - Laravel 从 localhost 下载文件