如何在 ajax 调用中的 jquery 中使用三元运算符?

How to use ternary operator in jquery within ajax call?

我正在使用核心 PHP、jQuery 和 MySql。我的代码中有 2 个依赖下拉菜单。 company list 的第一个下拉列表直接来自数据库,并在同一页面上进行了查询。

对于特定 companyemployee list 的第二个下拉列表,我正在使用 ajax 从数据库中获取数据。

var lastSelectedEmpId = $('#hiddeniid').val();
$.ajax({
  method: "GET",
  dataType: 'json',
  url:"getdata.php?id="+emp_id,
  success:function (response){
    $(".bodytable").empty();
    $.each(response, function( index, value ) {
      $(".class").append("<option value="'+value.id+','+value.emp_type+'">" + value.emp_name + </option>'");
    });
  },
});

正如您在上面的代码中看到的值 "'+value.id+','+value.emp_type+'"

_GET['curent_id'] 我正在获取选定用户的所有数据。

我的添加和更新代码在同一页面上。所以我只有一个 ajax 调用 employee_list.

正如您在 _GET['curent_id'] 上看到的以上代码,我正在获取员工 id_emptype 的所有数据。

我希望此 id_emptype 在 ajax 调用中用作选定选项。为此,我想在 jQuery 中使用三元运算符,但它不起作用 对我来说。

我的当前 id_emptype 有一个隐藏字段。在变量 lastSelectedEmpId.

现在我正在执行类似下面代码的操作以将 current id_emptype 作为所选值加载页面,但它不起作用:

$(".class").append<option value="' +value.id+','+value.emp_type+ '"' +
  (+value.id+','+value.emp_type+ === lastSelectedEmpId ? 'selected="selected"' : '') +
  '>' + value.emp_name + '</option>;

用字符串拼接一些JS逻辑时,需要用括号括起来。

请注意放置 + 符号和括号的位置。你不能把它们放在错误的地方或丢失。

试试下面的 .append(),我在其中填充了变量以使演示正常运行:

var lastSelectedEmpId = "1,type";

var value={
  id:1,
  emp_type:"type",
  emp_name:"John Doh"
}

$(".class").append('<option value="' +value.id+','+value.emp_type+ '"' + 
                   ((value.id+','+value.emp_type === lastSelectedEmpId) ? 'selected="selected"' : '') +
                   '>' + value.emp_name + '</option>');
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<select class="class">
  <option>1</option>
  <option>2</option>
  <option>3</option>
</select>

===
'selected="selected"' 可能只是 'selected'。无论如何,该属性是 true/false。但是浏览器只要存在就将其解释为 true。

您甚至可以尝试 'selected="bullshit"',它会起作用...;)