根据从 jquery 中的下拉菜单中单击的内容更改值
Change value based on what clicked from dropdown menu in jquery
我有一个下拉菜单,其中包含来自我的 C# 模型的列表。现在我想根据我从菜单中选择的内容更改一个值。
$(document).ready(function() {
$("#Bereich").val('@Model.Bereich').change('click', function() {
$("select option:selected").each(function() {
if ($(this) == "Something") {
$('#kst').val(123);
}
if ($(this) == "Somethingelse") {
$('#kst').val(345);
}
});
}).change();
});
我对 jQuery 很陌生,所以我不确定如何从列表中获取元素。
您的代码中存在两个主要问题。首先 change('click', fn)
不是有效的语法。鉴于我们正在处理一个 select
元素,我假设您正在尝试创建一个 change
事件处理程序,因此代码应该是 on('change', fn)
。
其次,$(this)
会给你一个jQuery对象。这永远不会等于字符串值,因此条件永远不会满足。我假设您正在尝试测试所选项目的值以为此使用 val()
。
请注意,在下面的示例中,我将 #kst
存储在 jQuery 对象中,并在需要保存访问 DOM 的地方重复引用它,这是大多数性能损失的地方JS。另请注意,您可以直接从 select
元素访问 val()
- 您不需要检索其中的 option:selected
元素。
jQuery($ => {
let $kst = $('#kst');
$("#Bereich").val('@Model.Bereich').on('change', function() {
$("select").each(function() {
let value = $(this).val();
if (value === "Something") {
$kst.val(123);
}
if (value === "Somethingelse") {
$kst.val(345);
}
});
}).change();
});
我有一个下拉菜单,其中包含来自我的 C# 模型的列表。现在我想根据我从菜单中选择的内容更改一个值。
$(document).ready(function() {
$("#Bereich").val('@Model.Bereich').change('click', function() {
$("select option:selected").each(function() {
if ($(this) == "Something") {
$('#kst').val(123);
}
if ($(this) == "Somethingelse") {
$('#kst').val(345);
}
});
}).change();
});
我对 jQuery 很陌生,所以我不确定如何从列表中获取元素。
您的代码中存在两个主要问题。首先 change('click', fn)
不是有效的语法。鉴于我们正在处理一个 select
元素,我假设您正在尝试创建一个 change
事件处理程序,因此代码应该是 on('change', fn)
。
其次,$(this)
会给你一个jQuery对象。这永远不会等于字符串值,因此条件永远不会满足。我假设您正在尝试测试所选项目的值以为此使用 val()
。
请注意,在下面的示例中,我将 #kst
存储在 jQuery 对象中,并在需要保存访问 DOM 的地方重复引用它,这是大多数性能损失的地方JS。另请注意,您可以直接从 select
元素访问 val()
- 您不需要检索其中的 option:selected
元素。
jQuery($ => {
let $kst = $('#kst');
$("#Bereich").val('@Model.Bereich').on('change', function() {
$("select").each(function() {
let value = $(this).val();
if (value === "Something") {
$kst.val(123);
}
if (value === "Somethingelse") {
$kst.val(345);
}
});
}).change();
});