JS 注入代码显示在错误的位置 - 我该如何解决这个问题?
JS injected code displays in the wrong location - How can I fix this?
我使用在网上找到的一些代码创建了一个随机卡片选择器。我遇到的问题是代码注入的位置。
我希望它在节中而不是在正文末尾显示代码。
JS 看起来像这样:
//find the length of the array of images
var arrayLength = imageArray.length;
var newArray = [];
for(var i = 0; i < arrayLength; i++) {
newArray[i] = new Image();
newArray[i].src = imageArray[i].src;
newArray[i].width = imageArray[i].width;
newArray[i].height = imageArray[i].height;
}
// create random image number
function getRandomNum(min, max) {
// generate and return a random number for the image to be displayed
imgNo = Math.floor(Math.random() * (max - min + 1)) + min;
return newArray[imgNo];
}
// 0 is first image and (preBuffer.length - 1) is last image of the array
var newImage = getRandomNum(0, newArray.length - 1);
// remove the previous images
var images = document.getElementsByTagName("img");
var l = images.length;
for(var p = 0; p < l; p++) {
images[0].parentNode.removeChild(images[0]);
}
// display the new random image
document.body.appendChild(newImage);
}
HTML 看起来像这样:
<body class="bg-extra-dark-gray small-section text-center">
<section>
<div class="container">
<div class="row">
<div class="col-12 tiny-screen page-title-medium text-center d-flex flex-column justify-content-center">
<!-- start page title -->
<h1 class="alt-font text-white font-weight-600 m-0 letter-spacing-1 margin-5px-bottom">
Brainstorm Card Generator
</h1>
<!-- end page title -->
<!-- start sub title -->
<div class="text-deep-pink margin-25px-bottom">
Press the button to display a new card
</div>
<!-- end sub title -->
<!-- start button title -->
<div>
<button class="btn btn-transparent-white btn-rounded btn-medium text-link-white inner-link margin-25px-bottom" onclick="displayRandomImages();">
Display Images
</button>
<!-- end button title -->
</div>
<!-- start image title -->
<div>
<img src="img/info/directions-00.png" />
</div>
</div>
</div>
</div>
</section>
看看上面说的 'start image title' 我希望代码显示在这里。我知道这是一个菜鸟问题,但我很少编写代码。我只想将它注入该部分,以便我可以设置它的样式。
Picture of the DOM
该工具也已上线,如果有帮助的话。 https://tools.akanoodles.com/
您的 JavaScript 所做的最后一件事是将新图像附加到文档正文中。那是在文档的末尾。
这一行
// display the new random image
document.body.appendChild(newImage);
您需要将其替换为
document.querySelector("CSS Selector, where on the page you like to append your image").appendChild(newImage);
做
document.querySelector("section").appendChild(newImage)
而不是
document.body.appendChild(newImage);
另外,不要删除这样的图片
images[0].parentNode.removeChild(images[0]);
随便写
images[0].remove();
我使用在网上找到的一些代码创建了一个随机卡片选择器。我遇到的问题是代码注入的位置。
我希望它在节中而不是在正文末尾显示代码。
JS 看起来像这样:
//find the length of the array of images
var arrayLength = imageArray.length;
var newArray = [];
for(var i = 0; i < arrayLength; i++) {
newArray[i] = new Image();
newArray[i].src = imageArray[i].src;
newArray[i].width = imageArray[i].width;
newArray[i].height = imageArray[i].height;
}
// create random image number
function getRandomNum(min, max) {
// generate and return a random number for the image to be displayed
imgNo = Math.floor(Math.random() * (max - min + 1)) + min;
return newArray[imgNo];
}
// 0 is first image and (preBuffer.length - 1) is last image of the array
var newImage = getRandomNum(0, newArray.length - 1);
// remove the previous images
var images = document.getElementsByTagName("img");
var l = images.length;
for(var p = 0; p < l; p++) {
images[0].parentNode.removeChild(images[0]);
}
// display the new random image
document.body.appendChild(newImage);
}
HTML 看起来像这样:
<body class="bg-extra-dark-gray small-section text-center">
<section>
<div class="container">
<div class="row">
<div class="col-12 tiny-screen page-title-medium text-center d-flex flex-column justify-content-center">
<!-- start page title -->
<h1 class="alt-font text-white font-weight-600 m-0 letter-spacing-1 margin-5px-bottom">
Brainstorm Card Generator
</h1>
<!-- end page title -->
<!-- start sub title -->
<div class="text-deep-pink margin-25px-bottom">
Press the button to display a new card
</div>
<!-- end sub title -->
<!-- start button title -->
<div>
<button class="btn btn-transparent-white btn-rounded btn-medium text-link-white inner-link margin-25px-bottom" onclick="displayRandomImages();">
Display Images
</button>
<!-- end button title -->
</div>
<!-- start image title -->
<div>
<img src="img/info/directions-00.png" />
</div>
</div>
</div>
</div>
</section>
看看上面说的 'start image title' 我希望代码显示在这里。我知道这是一个菜鸟问题,但我很少编写代码。我只想将它注入该部分,以便我可以设置它的样式。
Picture of the DOM
该工具也已上线,如果有帮助的话。 https://tools.akanoodles.com/
您的 JavaScript 所做的最后一件事是将新图像附加到文档正文中。那是在文档的末尾。
这一行
// display the new random image
document.body.appendChild(newImage);
您需要将其替换为
document.querySelector("CSS Selector, where on the page you like to append your image").appendChild(newImage);
做
document.querySelector("section").appendChild(newImage)
而不是
document.body.appendChild(newImage);
另外,不要删除这样的图片
images[0].parentNode.removeChild(images[0]);
随便写
images[0].remove();