Jquery 用于if-else动态更改内容的较短代码

Jquery 用于if-else动态更改内容的较短代码,jquery,Jquery,我有一个由系统生成的数据层,我想根据数据层中的值更改页面的特定内容。我提出了这个条件if-else语句,它工作得很好,但是有没有更好的(更短更干净的)方法来使用jQuery根据这些值更改元素的内容呢 for (const [value, selector] of [ [dataLayer.majorValue, "#major-value"], ]) { if (value == 'Art' ) { $(selector).html('Art descript

我有一个由系统生成的数据层,我想根据数据层中的值更改页面的特定内容。我提出了这个条件if-else语句,它工作得很好,但是有没有更好的(更短更干净的)方法来使用jQuery根据这些值更改元素的内容呢

for (const [value, selector] of [
  [dataLayer.majorValue, "#major-value"],
]) {
  if (value == 'Art' ) {
    $(selector).html('Art description lorem ipsum blurb goes here.');
  } else if (value == 'Business') {
    $(selector).html('Business description lorem ipsum blurb goes here.');
  } else if (value == 'Education') {
    $(selector).html('Education description lorem ipsum blurb goes here.');
  } else if (value == 'Humanities') {
    $(selector).html('Humanities description lorem ipsum blurb goes here.');
  } else if (value == 'Health') {
    $(selector).html('Health description lorem ipsum blurb goes here.');
  } else if (value == 'Mathematics') {
    $(selector).html('Mathematics description lorem ipsum blurb goes here.');
  } else if (value == 'Languages') {
    $(selector).html('Languages description lorem ipsum blurb goes here.');
  } else if (value == 'Sciences') {
    $(selector).html('Sciences description lorem ipsum blurb goes here.');
  }
}

如果级联,则替换为

switch(value) {
  case 'Art':
    $(selector).html('Art description lorem ipsum blurb goes here.');
    break;
  case 'Business':
    $(selector).html('Business description lorem ipsum blurb goes here.');
    break;
  case 'Education':
    $(selector).html('Education description lorem ipsum blurb goes here.');
    break;
  case 'Humanities':
    $(selector).html('Humanities description lorem ipsum blurb goes here.');
    break;
  case 'Health':
    $(selector).html('Health description lorem ipsum blurb goes here.');
    break;
  case == 'Mathematics':
    $(selector).html('Mathematics description lorem ipsum blurb goes here.');
    break;
  case 'Languages':
    $(selector).html('Languages description lorem ipsum blurb goes here.');
    break;
  case 'Sciences':
    $(selector).html('Sciences description lorem ipsum blurb goes here.');
    break;
  
  default:
    // default if one exists or could just be last one (sciences)
}

或者使用字典查找基于关键字的简介


是从函数调用返回的模糊,还是需要硬编码到页面中?

如果级联为

switch(value) {
  case 'Art':
    $(selector).html('Art description lorem ipsum blurb goes here.');
    break;
  case 'Business':
    $(selector).html('Business description lorem ipsum blurb goes here.');
    break;
  case 'Education':
    $(selector).html('Education description lorem ipsum blurb goes here.');
    break;
  case 'Humanities':
    $(selector).html('Humanities description lorem ipsum blurb goes here.');
    break;
  case 'Health':
    $(selector).html('Health description lorem ipsum blurb goes here.');
    break;
  case == 'Mathematics':
    $(selector).html('Mathematics description lorem ipsum blurb goes here.');
    break;
  case 'Languages':
    $(selector).html('Languages description lorem ipsum blurb goes here.');
    break;
  case 'Sciences':
    $(selector).html('Sciences description lorem ipsum blurb goes here.');
    break;
  
  default:
    // default if one exists or could just be last one (sciences)
}

或者使用字典查找基于关键字的简介


您从函数调用中得到的模糊是返回的,还是需要硬编码到页面中?

将它们放在与
值相同的键的对象中是最简单的

const getDescription = value => {
    const descriptions = {
      'Art': 'Art description... ',
      'Business': 'Business description...',
      'Education': 'Education description....',
      // ....
      'Sciences': 'Sciences description....'
    };    
    return descriptions[value] || 'Default not found description';
}
    
$(selector).html(getDescription(value))

将它们放在与
value
具有相同键的对象中是最简单的

const getDescription = value => {
    const descriptions = {
      'Art': 'Art description... ',
      'Business': 'Business description...',
      'Education': 'Education description....',
      // ....
      'Sciences': 'Sciences description....'
    };    
    return descriptions[value] || 'Default not found description';
}
    
$(selector).html(getDescription(value))

我喜欢。回程线是干什么的?我需要它吗?从函数返回描述。如果需要,该函数可以放在其他逻辑流之外的其他地方。我本应该更清楚一些,我被或| | |“Default not found description”(默认未找到描述)弄糊涂了,因为
可能与对象中的任何键都不匹配。如果这不太可能,您就不需要使用
| |“Default…”
这比条件句更好、更简洁。谢谢我喜欢。回程线是干什么的?我需要它吗?从函数返回描述。如果需要,该函数可以放在其他逻辑流之外的其他地方。我本应该更清楚一些,我被或| | |“Default not found description”(默认未找到描述)弄糊涂了,因为
可能与对象中的任何键都不匹配。如果这不太可能,您就不需要使用
| |“Default…”
这比条件句更好、更简洁。谢谢D