1

我正在尝试将数组的每个图像的标题附加到高度和宽度大于 x 的每个单独图像

*无法弄清楚如何使用编辑器正确格式化

var curHeight;
var curWidth;
var hr;
function imgHr(){
  var allImages = document.images;
   for (var i=0; allImages.length > i; i++) {
     var imgSrc = allImages[i].src;
     var newImg = new Image();
     newImg.src = imgSrc;    
     curHeight = newImg.height;
     curWidth = newImg.width;
      if(curWidth>='80' && curHeight>='80'){
         var imgGet=allImages[i];
         var hrT=allImages[i].title;
         var hr= document.createElement("hr");
         hr.style.border-bottom="1px solid skyblue";
         hr.innerHTML=hrT;
         //appendChild isn't working
         imgGet.appendChild(hr);
         //but everthing else works: example
         imgGet.style.border="1px solid red";
       } else {
         //maybe add something later
       }
    }   
 }

好的,这解决了我的情况

function insertafter(newChild, refChild){ 
 refChild.parentNode.insertBefore(newChild,refChild.nextSibling);
 }
4

1 回答 1

0

你的错误在hr.style.border-bottom="1px solid skyblue". 在 javascript 中,您需要使用 camelCase 属性:hr.style.borderBottom="1px solid skyblue". 请参阅此 SO-question

此外,您不能appendChildimg元素上使用。您必须将图像包装在 a 中div(因此:创建一个div元素,将其附加,从其原始位置img删除,创建一个元素,将其附加到)。imghrdiv

最后但同样重要的是:您不能innerHTMLh(orizontal)r(uler). 所以剩下的是:创建一个div元素,将 1 附加img到该1img ,从其原始位置删除,创建一个包含 img 标题的 textNode (或跨度),并将其附加到div.

1另一个想法可能是使用图像作为新创建的背景图像div

于 2011-07-15T06:27:01.770 回答