繁体   English   中英

按文本选择 jquery 中的选项

[英]Select option in jquery by text

这应该是一项相当简单的任务,但所有在线解决方案都不适合我。

我有一个包含贷款类型的数组:

var arrLoanType = {
        1:"Regular Loan",
        2:"Emergency Loan",
        3:"Special Loan",
        ...}

我将上述内容与数据库中的条目进行比较,以便将数据库中存在的条目从数组中删除。

我通过下面的代码遍历它们:

$.each(arrLoanType, function(index, value){
    $("#loanType").append("<option value='"+index+"'>"+value+"</option>");
});

现在的问题是,我想要发生的是基于选项文本的默认选定字段。 这是我的代码:

$('#loanType option').filter(function () { 
   return $(this).text() == selectedLoan; 
}).attr('selected','selected');

其中selectedLoan来自隐藏的输入字段var selectedLoan = $("#loanSelected").val();

它只是不起作用。 这是生成$.each后我的 HTML 代码结构的样子:

<select name="" id="loanType" class="form-control" required="">
    <option value="" selected="" disabled="" hidden="">Select Loan Type...</option>
    <option value="1">Regular Loan</option>
    <option value="2">Emergency Loan</option>
    <option value="3">Special Loan</option>
...

我已经尝试删除第一个项目上的“selected”属性,但它仍然不起作用。 任何帮助,将不胜感激。 谢谢。

您可以选择创建本身的默认值

$.each(arrLoanType, function(index, value){
    if(value == selectedLoan)
        $("#loanType").append("<option value='"+index+"' selected>"+value+"</option>");
    else
        $("#loanType").append("<option value='"+index+"'>"+value+"</option>");
});

if else 检查文本是否等于选定的贷款并在创建中添加选定的属性我认为它解决了您的问题

看起来不错,请看一下。 控制台有什么错误吗? 也许您忘记在文档中包含 jquery lib 或未准备好?

 $(document).ready(function(e) { var arrLoanType = { 1:"Regular Loan", 2:"Emergency Loan", 3:"Special Loan"} $.each(arrLoanType, function(index, value){ $("#loanType").append("<option value='"+index+"'>"+value+"</option>"); }); $('#loanType option').filter(function () { return $(this).text() == $("#loanSelected").val(); }).attr('selected','selected'); });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script> <select name="" id="loanType" class="form-control" required=""></select> <input id ="loanSelected" value="Special Loan" type="hidden">

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM