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

Posted

技术标签:

【中文标题】如何在ajax调用中在jquery中使用三元运算符?【英文标题】:How to use ternary operator in jquery within ajax call? 【发布时间】:2019-07-14 22:11:26 【问题描述】:

我正在使用核心 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>;

【问题讨论】:

.append() 需要一些括号! 这是错字@LouysPatriceBessette。我猜这不是问题。我在我的代码中更正它。 好吧,编辑最后一个代码块并确保没有其他拼写错误。那么,可能会有帮助。 【参考方案1】:

当用字符串连接一些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'。无论如何,该属性是真/假。但是浏览器会简单地将其解释为真实。

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

【讨论】:

以上是关于如何在ajax调用中在jquery中使用三元运算符?的主要内容,如果未能解决你的问题,请参考以下文章

如何在一个 jQuery 调用中在两个文本之间切换?

jQuery 语句中的三元运算符

如何在带有过滤器的Vue模板中使用三元运算符?

你可以使用jQuery的三元运算符吗?

jquery 直接在CSS函数中设置三元运算符

.append 中带有三元 `:?` 运算符的 jQuery 错误?