首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用javascript合并html段落

使用javascript合并html段落
EN

Stack Overflow用户
提问于 2014-11-27 15:50:13
回答 1查看 864关注 0票数 0

我目前正在一个非常简单的javascript任务上挣扎,但我对它并不熟悉,所以它让我很困惑。

例如html

代码语言:javascript
复制
<div class="item">
            <div class="title">Item 1 Title</div>
            <div class="description-1">lorum</div>
            <div class="description-2">ipsum</div>
            <div class="description-combined"></div>
        </div>

所以我需要把第1和第2段结合起来,并替换第3段中的空信息。我还没有使用jQuery,所以我的研究因此而引起了斗争。我目前有:

代码语言:javascript
复制
var p1 = getElementsByClassName ('description-1').innerHTML;
var p2 = getElementsByClassName ('description-2').innerHTML;
var p3 = p1 + P2
document.getElementsByClassName ('description-combined').innerHTML = p3

我确实有p3拥有p1.conat(P2),但这是行不通的。我正在使用它作为一个外部文件,所以我可能也错过了在我的HTML文件中放一些东西。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-27 16:02:00

编辑会更改问题。

我可能要做的是循环遍历.item元素,结合内部的描述。

document.getElementsByClassNamedocument的属性,而不是独立的函数,它返回匹配元素的列表。它也不像document.querySelectordocument.querySelectorAll那样得到广泛的支持,所以我可能会使用它们;对于我们正在讨论的内容,我们还需要Element#querySelector

代码语言:javascript
复制
// Get a list of the items and loop through it
Array.prototype.forEach.call(document.querySelectorAll(".item"), function(item) {
  // Get the two description divs, and the combined, that
  // are *within* this item
  var d1 = item.querySelector(".description-1");
  var d2 = item.querySelector(".description-2");
  var c  = item.querySelector(".description-combined");
  
  // Set the combined text (this assumes we have them all)
  c.innerHTML = d1.innerHTML + d2.innerHTML;
});
代码语言:javascript
复制
.description-combined {
  color: green;
}
代码语言:javascript
复制
<div class="item">
  <div class="title">Item 1 Title</div>
  <div class="description-1">One description 1</div>
  <div class="description-2">One description 2</div>
  <div class="description-combined"></div>
</div>
<div class="item">
  <div class="title">Item 2 Title</div>
  <div class="description-1">2 description 1</div>
  <div class="description-2">2 description 2</div>
  <div class="description-combined"></div>
</div>
<div class="item">
  <div class="title">Item 3 Title</div>
  <div class="description-1">3 description 1</div>
  <div class="description-2">3 description 2</div>
  <div class="description-combined"></div>
</div>

Array.prototype.forEach.call(list, function() { ... });是一种循环遍历任何类似数组但不是数组的方法。在this other answer中有更多的解释,它也有几种选择。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27174477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档