首页 > 解决方案 > 如何在Javascript中的标签内获取属性以进行排序功能

问题描述

我发现这个功能很好,但我需要一些更具体的东西:

    function sortList() {
  var ul = document.getElementsByClassName("myUL")[0];
    
  Array.from(ul.getElementsByTagName("li"))
    .sort((a, b) => a.getAttribute('title').localeCompare(b.getAttribute('title')))
    .forEach(li => ul.appendChild(li));
}

所以,我需要 getAttribute 标题,但是来自我的 li 内部的 img 标签,而不是 li 本身,我不知道该怎么做。很抱歉这个愚蠢的问题,但我完全是个菜鸟,只是想创建一个简单的档案供个人使用。

标签: javascriptsortingappendchild

解决方案


使用Element.closest()

   function sortList() {
      var ul = document.getElementsByClassName("myUL")[0];
      Array.from(ul.getElementsByTagName("li"))
        .sort((a, b) => a.querySelector("img").getAttribute('title').localeCompare(b.querySelector("img").getAttribute('title')))
        .forEach(li => ul.appendChild(li));
    }

推荐阅读