【问题标题】:Add CSS class to HTML with Javascript ternary operator使用 Javascript 三元运算符将 CSS 类添加到 HTML
【发布时间】:2020-12-07 15:03:46
【问题描述】:

我需要添加来自 css 类 .checkmark.stem 的复选标记图像,但不知道如何添加它。
我尝试了不同的解决方案,但我只得到错误或只是一个string。应将图像复选标记添加到三元运算符checkmark

import {
    myArray
} from './theData.js';

function addCheckmark() {
    let checkmark = document.getElementsByClassName(".checkmark");
    let stem = document.getElementsByClassName(".stem");
    checkmark.appendChild(stem)
}

buildTable(myArray);

function buildTable(data) {
    for (var i = 0; i < data.length; i++) {
        let row = `<tr>
    <td>${data[i].gameNumber}</td>
    <td>${data[i].teams["1"].name} -VS- ${data[i].teams["2"].name}</td>
    <td>${data[i].outcome === "1" ? "checkmark":  ""}</td>
    <td>${data[i].outcome === "X" ? "checkmark" : ""}</td>
    <td>${data[i].outcome === "2" ? "checkmark" : ""}</td>

    </tr>`
        table.innerHTML += row;
    }
}

【问题讨论】:

  • getElementsByClassName 是一个集合/nodeList 并且类似于数组
  • 输入是什么,该输入的预期输出是什么?单击编辑,然后将导入语句更改为实际数组并使用[&lt;&gt;] sn-p 编辑器创建一个minimal reproducible example
  • 所以,不要写"checkmark",而是写"&lt;img src='path/to/checkmark.png' class='checkmark'&gt;" 或任何你需要的HTML...

标签: javascript css conditional-operator


【解决方案1】:

这行有几个问题:

let checkmark = document.getElementsByClassName(".checkmark");

  1. 应该是“checkmark”,而不是“.checkmark”,因为那是类名。
  2. getElementsByClassName 是一个集合(类似于数组),应该这样对待。
  3. 使用const 而不是let 表示永远不会更改的值。

此代码为所有项目添加复选标记:

function addCheckmark() {
  const checkmarks = document.querySelectorAll('.checkmark');
  const stem = document.querySelector('.stem');
  checkmarks.forEach(checkmark => checkmark.appendChild(stem));
}

您在此处得到的答案可能无法解决您的问题,因为您的问题不清楚。

【讨论】:

  • 谢谢!我应该将 css 中的复选标记发布到 td:s 中。这是一个足球比赛的结果表。因此,现在在三元组中显示“复选标记”的地方,我应该从 css 中获取复选标记。但我只是得到错误......我应该在那里放什么?希望这能澄清问题......
  • @SvenE 您遇到了哪些错误?让我们从那里开始..
猜你喜欢
  • 2017-06-18
  • 2013-01-15
  • 1970-01-01
  • 2022-01-05
  • 1970-01-01
  • 2015-07-09
  • 2017-03-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多