在JS中使用类而不是id来执行操作

时间:2019-02-06 19:46:20

标签: javascript function

首先,对不起,我对javascript不好。

HTML:

<div id="Comment-ID">
   <p class="comment-content">...</p>
 </div>

javascript :(编辑:添加了整个代码)

<script type='text/javascript'>
function autoloadmore() {
  var loadmoreClass = document.getElementsByClassName(&quot;loadmore&quot;)[0];
  var loadmoreChild = loadmoreClass.querySelector(&#39;a&#39;)

  if (loadmoreClass) {
    loadmoreChild.click();
  }
}
//<![CDATA[
function InsertarImagenVideo(id) {
var IDelemento = document.getElementById(id),
sustituir = IDelemento.innerHTML;
sustituir = sustituir.replace(/\[img\](.[^\]]*)\[\/img\]/ig, "<img class='img-comentarios' src='$1'\/>");
document.getElementById(id).innerHTML = sustituir;
}
//]]>



window.onload = function() {
  autoloadmore();
  setTimeout(function(){
    InsertarImagenVideo('Comment-ID');
  },3000);
};
</script>

“ InsertarImagenVideo”用图像替换其中的一些文本。与其在“ Comment-ID”上使用它,不如在“ Comment-class”上使用它。

注意:我无法编辑HTML。

搜索时我找不到任何东西,或者也许我不知道该怎么看。有人可以帮我吗?

2 个答案:

答案 0 :(得分:0)

您可以使用document.querySelector按类别选择元素:

更新此行: var IDelemento = document.getElementById(id),

var IDelemento = document.querySelector(id),

并将类selector传递给方法InsertarImagenVideo

setTimeout(function(){
    InsertarImagenVideo('.comment-content');
},3000);

答案 1 :(得分:0)

我找到了一种简单的方法,即通过抓住父<p class="comment-content">...</p>将图像插入<div id="Comment-ID">元素。

我假设您需要获取唯一的id才能访问内部的<p>元素以将现有文本替换为图像。此代码捕获唯一的id元素,然后使用<p>捕获第一个.getElementsByTagName('p')[0]标签。我添加的一件事是正确的图像加载脚本,以在图像加载后用图像更新<p>标签(也许这消除了对您拥有的setTimeout函数的需要?)。

let classElement = document.getElementById("Comment-ID").getElementsByTagName('p')[0];
let imageObject = new Image();
imageObject.src = `https://www.clipartmax.com/png/full/1-14442_smiley-face-png-smiley-png.png`;

imageObject.onload = function() {
    classElement.innerHTML = `<img id="myImg" src="${imageObject.src}" />`; 
  let imageElement = document.getElementById(`myImg`);
  imageElement.width = 100;
  imageElement.height = 100;
};

这是运行中的上层代码的JSFiddle demo

希望这会有所帮助:)