javascript - Jquery 选择器选择一个 div 下的 h4 标签

标签 javascript jquery html

我想将 h4 标签中的文本更改为其祖父 div 的类名,即 (sds 2016 gwap)。

   <div class="grid">
      <div class="office-year-function sds 2016 gwap">
          <div class="content cell-child">
               <img src="535/img/01.jpg" alt="" width="312px" height="160px">
          </div>
           <div class="img-hover cell-child">
                 <br/>
                 <h3>GWAP Kick-off Ceremony</h3>
                 <h3>2016</h3>
                 <h4></h4>

当文档完成加载时,它将运行以下函数。

function changeTag() {
    for (var i = 1; i <= $('.office-year-function').length; i++) {
        $this = $('div.grid  div.office-year-function:nth-child(' + i + ')');
        var className = $this.attr('class');
        className = className.split(" ");

        for (var j = 1; j < className.length; j++) {
            className[j] = className[j].replace("-", " ");

            if (className[j] == "gwap") {
                $this.find("h4").html += className[j].toUpperCase();
            } else {
                $this.find('h4').html += className[i].capitalize();
            }
        }
    }

}

但是有错误

$this.find("h4").html+=className[j].toUpperCase();
$this.find('h4').html+=className[i].capitalize();

我的代码有什么问题?

最佳答案

您当前的实现不作为 .html()是一个函数,您将其视为属性(property)。您可以使用 [0] 获取底层 DOM 元素并使用 innerHTML 属性。

 $this.find("h4")[0].innerHTML +=className[j].toUpperCase();

但是,使用 .append()可用于获得所需的结果。

function changeTag() {
    for (var i = 1; i <= $('.office-year-function').length; i++) {
        $this = $('div.grid  div.office-year-function:nth-child(' + i + ')');
        for (var j = 1; j < className.length; j++) {
            className[j] = className[j].replace("-", " ");
            if (className[j] == "gwap") {
                $this.find("h4").append(className[j].toUpperCase());
            } else {
                $this.find("h4").append(className[i].capitalize());
            }
        }
    }
}

关于javascript - Jquery 选择器选择一个 div 下的 h4 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40780075/

相关文章:

javascript - 如何在同一个 for 循环中声明一个新对象而不覆盖之前的迭代?

javascript - 使用 jQuery 将 CanvasJS 图表克隆为模态

javascript - YouTube API json 网址

javascript - 动态填充html中的json数据

javascript - 在 contenteditable div 中收听撤消/重做事件

Javascript 函数未按预期工作

javascript - Node js初学者遇到错误

javascript - 将鼠标悬停在列表中的元素上时显示菜单

javascript - 动画背景图像向左滑动的最简单方法?

html - <li> 标签有时无法正确显示(错误?)