You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在jQuery中匹配文本选中AJAX加载的Select选项并获取其ID与值?

解决方案

首先,因为你的select是通过AJAX加载的,一定要确保在DOM元素完全加载完成后再执行匹配逻辑——要么把代码放在AJAX请求的success回调里,要么用$(document).ready()(如果AJAX是在页面加载时触发的)。

第一步:匹配文本并选中对应的option

我们可以遍历select下的所有option,检查每个选项的文本是否包含在mytexto字符串中,匹配成功就设置为选中状态:

var mytexto = 'Ipad Mini 4 16GB/1GB Azul';

// 确保DOM加载完成或AJAX请求完成后执行
$(function() {
  // 遍历所有option(排除默认的禁用选项)
  $('#nombre_modelo option:not(:disabled)').each(function() {
    var optionText = $(this).text().trim();
    // 检查当前option文本是否包含在mytexto中
    if (mytexto.includes(optionText)) {
      $(this).prop('selected', true);
      // 找到匹配项后跳出循环,避免不必要的遍历
      return false;
    }
  });
});

第二步:获取选中选项的id和value

选中目标选项后,你可以通过以下方式获取它的id属性和value值:

// 获取选中的option元素
var selectedOption = $('#nombre_modelo option:selected');

// 获取id属性
var optionId = selectedOption.attr('id');
// 获取value值(如果option没有设置value,val()会返回文本内容)
var optionValue = selectedOption.val();

// 输出结果示例:
console.log('选中项的id:', optionId); // 输出 27
console.log('选中项的value:', optionValue); // 输出空字符串(因为示例里的option没设置value)

补充说明

  • 如果你的option元素都设置了value属性(比如<option id="27" value="mini4">Mini 4</option>),val()会直接返回对应的value值;如果没设置,就会返回选项的文本内容。
  • 如果需要不区分大小写的匹配,可以把两个字符串都转成小写再比较:
    if (mytexto.toLowerCase().includes(optionText.toLowerCase())) {
      // 选中逻辑
    }
    

内容的提问来源于stack exchange,提问作者Sylar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 17:47:43