用于更改 html 元素上“value”属性值的 jQuery 函数

Sco*_*peY 1 html javascript jquery

有没有办法使用类似$(".class").change(function(){or 的东西$("#id").change(function(){,但是要像这样更改 option 元素的 value 属性的值?

<select>
    <option value="changeThis">opt</option>
</select>
Run Code Online (Sandbox Code Playgroud)

我正在使用 for 循环从关系数据库生成选择列表的每个选项,所以我需要有一个函数来自动增加值,以便它们是唯一的。


新代码:

<div class="facilitySelection">
    <select name="Facility" class="form-control">
        <option selected disabled>Select a facility...</option>
        @{
            var i = 1;

            foreach (var item in Model)
            {
            <option value="@i">@Html.DisplayFor(modelItem => item.FacilityName</option>
            i++;
            }
        }
    </select>
</div>
Run Code Online (Sandbox Code Playgroud)

较新的代码:

我有一个设施表,有一个 ID 和名称字段。现在使用foreach循环直接使用数据库中的 ID,而不是从脚本块中的变量生成数字,以确保数据库中的 ID 和名称正确排列。

<div class="facilitySelection">
    <select id="Facility" name="Facility" class="form-control">
        <option selected disabled>Select a facility...</option>
        @{  
            foreach(var f in ViewBag.Facilities)
            {
                <option value="@f.Id">@f.Name</option>
            }
        }
    </select>
</div>
Run Code Online (Sandbox Code Playgroud)

T.J*_*der 5

您可以使用以下attr函数更改属性:

$("selector-for-the-option").attr("value", "new value");
Run Code Online (Sandbox Code Playgroud)

您也可以使用prop,因为value一个的option元素有一个叫做反射特性value不同于 input元素,其中的value财产是不是对的反射特性value属性):

$("selector-for-the-option").prop("value", "new value");
Run Code Online (Sandbox Code Playgroud)