香草JS类别选择器.removeAttribute问题

时间:2019-12-17 15:36:36

标签: javascript html filter attributes selection

关于开发人员和JS的新知识(显然是一个简单的教程),使我陷入一个愚蠢的问题,该函数必须选择类别,而只是添加或删除属性。 它会添加(并隐藏),但不会删除(并让其出现)。

功能:

var showAndHideSongs = function(event, filter) {
    // get all songs that match the genre of the filter
    var songsByGenre = Array.from(
      document.querySelectorAll('#playlist [data-genre="' + filter + '"]')
    );

    // if checkbox is checked, show songs
    // otherwise, hide them

    if (event.target.cheched) {
      songsByGenre.forEach(function(song) {
      song.removeAttribute("hidden");

      });
    } else {
      songsByGenre.forEach(function(song) {
        song.setAttribute("hidden", "true");
      });
    }
  };

HTML:

<ol id="playlist">
      <li data-genre="pop">
        "Thank U, Next" by Arianna Grande
      </li>
      <li....

复选框是动态创建的:

 var renderCheckLists = function(genres) {
        app.innerHTML =
          "<h2>Filter Songs</h2><h3>By Genre</h3>" +
          genres
            .map(function(genre) {
              var html =
                "<label>" +
                '<input type="checkbox" checked data-filter="' +
                genre +
                '" checked>' +
                genre +
                "</label>";

              return html;
            })

除了解决方案,我几乎尝试了所有方法 如我所说,它已删除,但看起来“ removeAttibute”不起作用。

我在一个空白的测试项目中尝试了removeAttribute,并且实际上效果很好,所以问题就不存在了

预先感谢您的帮助

0 个答案:

没有答案