如何使用jQuery获取下拉列表选项的HTML文本而非value值
获取下拉选项的文本内容而非Value值
很简单,你只需要把代码里的this.value替换成获取文本内容的方法就行,给你几种可行的方案:
方案1:修改你原有的循环代码
直接把this.value换成this.textContent(原生JS方法)或者$(this).text()(jQuery方法),两者都能拿到选项里的纯文本内容:
var optionTexts = []; $('#select option').each(function(){ // 二选一即可 optionTexts.push(this.textContent); // optionTexts.push($(this).text()); });
比如你提到的<option value="John">Hello</option>,这样就能把"Hello"存入数组了。
方案2:更简洁的jQuery写法
用map()方法可以一步完成数组的构建,再用get()把jQuery对象转成普通数组:
var optionTexts = $('#select option').map(function() { return this.textContent; // 同样可以替换成 $(this).text() }).get();
关于你提到的innerHTML
你之前考虑用innerHTML其实也能拿到内容,但要注意:如果选项里嵌套了其他HTML标签(比如<option value="John">Hello <b>World</b></option>),innerHTML会返回包含标签的字符串"Hello <b>World</b>",而textContent或text()只会返回纯文本"Hello World"。如果你的选项都是纯文本内容,两种方法结果一样,但优先选文本专用的方法会更稳妥。
内容的提问来源于stack exchange,提问作者xSketchy0
相关产品推荐
相关产品推荐

