亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Table of Contents
HTML structure
JavaScript code
Code explanation
Things to note
Summarize
Home Web Front-end JS Tutorial Random book recommender: implemented using JavaScript

Random book recommender: implemented using JavaScript

Oct 12, 2025 am 05:27 AM

Random book recommender: implemented using JavaScript

This article will guide you on how to create a simple random book recommender using JavaScript. By clicking the button, the page will randomly display different book cover images. Based on the existing random quote generator code, we will transform it into a random book recommender and avoid recommending the same book repeatedly.

HTML structure

First, we need to create an HTML structure to display the book cover and a button that users can click to get new book recommendations.

 <div class="books">
  <h1 class="book-generator">Random book recommendations</h1>
  <div id="bookDisplay">
    <img src="/static/imghw/default1.png" data-src="./js/books.js" class="lazy" id="bookCover"   style="max-width:90%" alt="Book Cover">
  </div>
  <button onclick="newBook()" class="button-book">Recommend a new book</button>
  <script></script>
</div>

In this HTML structure, we create a div container that contains a title h1, an img tag to display the book cover, and a button button. The id of the img tag is set to bookCover, which is used to reference and update the image in JavaScript code. The style attribute is used to set the initial width of the image, and the alt attribute is used to display alternative text when the image cannot be loaded.

JavaScript code

Next, we need to write JavaScript code to implement the logic of random book recommendations.

 var images = [
  'https://m.media-amazon.com/images/I/81jRqrKKObL._AC_UL800_FMwebp_QL65_.jpg',
  'https://m.media-amazon.com/images/I/81JgX8VgZiL._AC_UL800_FMwebp_QL65_.jpg',
  'https://m.media-amazon.com/images/I/71CBWHK035L._AC_UL800_FMwebp_QL65_.jpg',
  'https://m.media-amazon.com/images/I/91pXKpUfGgL._AC_UL800_FMwebp_QL65_.jpg',
];

let lastBook = -1; // this is to prevent offering the same book twice

function newBook() {
    let randomNumber;
    do {
      randomNumber = Math.floor(Math.random() * (images.length));
    } while (randomNumber === lastBook);
    lastBook = randomNumber;
    document.getElementById('bookCover').src = images[randomNumber];
}

This JavaScript code first defines an images array, which contains the URL of the book cover image. Then, a lastBook variable is defined to record the index of the last recommended book to prevent repeated recommendations.

The newBook ??function is where the core logic lies. It first generates a random number randomNumber, and then uses a do...while loop to ensure that the newly generated random number is different from the index of the last recommended book. If the same, random numbers are regenerated until a different index is found. Finally, update the lastBook variable and set the src attribute of the bookCover element to the URL of the new book cover image.

Code explanation

  • images array : stores the URL address of the book cover image. You can add or modify these URLs as needed.
  • lastBook variable : initialized to -1, indicating that no books have been recommended yet.
  • newBook ??function :
    • Use Math.random() and Math.floor() to generate a random integer as the index of the images array.
    • Use a do...while loop to ensure that the generated random number is different from lastBook to prevent repeated recommendations.
    • Update the value of lastBook to the index of the currently recommended book.
    • Update the book cover image by getting the img element using document.getElementById('bookCover') and setting its src attribute to images[randomNumber].

Things to note

  • Make sure the books.js file is properly linked into the HTML file.
  • You can adjust the size and style of your book cover image as needed.
  • This code can be extended, for example by adding information such as the book's title, author, etc.
  • For a better user experience, consider showing a loading animation when loading images.
  • If you need to dynamically obtain book information from the server, you can use AJAX technology.

Summarize

Through the above steps, we successfully created a simple random book recommender. This recommender can randomly display different book cover images and avoid recommending the same book repeatedly. You can modify and expand it according to your own needs, such as adding more book information, using different image sources, etc. This project can be used as an introductory exercise in learning JavaScript and front-end development, helping you better understand concepts such as DOM manipulation, event handling, and random number generation.

The above is the detailed content of Random book recommender: implemented using JavaScript. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undress AI Tool

Undress AI Tool

Undress images for free

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

ArtGPT

ArtGPT

AI image generator for creative art from text prompts.

Stock Market GPT

Stock Market GPT

AI powered investment research for smarter decisions

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

JavaScript realizes click-through image switching effect: professional tutorial JavaScript realizes click-through image switching effect: professional tutorial Sep 18, 2025 pm 01:03 PM

This article will introduce how to use JavaScript to achieve the effect of clicking on images. The core idea is to use HTML5's data-* attribute to store the alternate image path, and listen to click events through JavaScript, dynamically switch the src attributes, thereby realizing image switching. This article will provide detailed code examples and explanations to help you understand and master this commonly used interactive effect.

How to get the user's location with the Geolocation API in JavaScript? How to get the user's location with the Geolocation API in JavaScript? Sep 21, 2025 am 06:19 AM

First, check whether the browser supports GeolocationAPI. If supported, call getCurrentPosition() to get the user's current location coordinates, and obtain the latitude and longitude values ??through successful callbacks. At the same time, provide error callback handling exceptions such as denial permission, unavailability of location or timeout. You can also pass in configuration options to enable high precision, set the timeout time and cache validity period. The entire process requires user authorization and corresponding error handling.

How to create a repeating interval with setInterval in JavaScript How to create a repeating interval with setInterval in JavaScript Sep 21, 2025 am 05:31 AM

To create a repetition interval in JavaScript, you need to use the setInterval() function, which will repeatedly execute functions or code blocks at specified milliseconds intervals. For example, setInterval(()=>{console.log("Execute every 2 seconds");},2000) will output a message every 2 seconds until it is cleared by clearInterval(intervalId). It can be used in actual applications to update clocks, poll servers, etc., but pay attention to the minimum delay limit and the impact of function execution time, and clear the interval in time when no longer needed to avoid memory leakage. Especially before component uninstallation or page closing, ensure that

The Nuxt 3 Composition API Explained The Nuxt 3 Composition API Explained Sep 20, 2025 am 03:00 AM

Nuxt3's Composition API core usage includes: 1. definePageMeta is used to define page meta information, such as title, layout and middleware, which need to be called directly in it and cannot be placed in conditional statements; 2. useHead is used to manage page header tags, supports static and responsive updates, and needs to cooperate with definePageMeta to achieve SEO optimization; 3. useAsyncData is used to securely obtain asynchronous data, automatically handle loading and error status, and supports server and client data acquisition control; 4. useFetch is an encapsulation of useAsyncData and $fetch, which automatically infers the request key to avoid duplicate requests

How to copy text to the clipboard in JavaScript? How to copy text to the clipboard in JavaScript? Sep 18, 2025 am 03:50 AM

Use the writeText method of ClipboardAPI to copy text to the clipboard, it needs to be called in security context and user interaction, supports modern browsers, and the old version can be downgraded with execCommand.

How to create a multi-line string in JavaScript? How to create a multi-line string in JavaScript? Sep 20, 2025 am 06:11 AM

TheBestAtOrreatEamulti-LinestringinjavascriptSisingStisingTemplatalalswithbacktTicks, whichpreserveTicks, WhichpreserveReKeAndEExactlyAswritten.

How to create and use Immediately Invoked Function Expressions (IIFE) in JavaScript How to create and use Immediately Invoked Function Expressions (IIFE) in JavaScript Sep 21, 2025 am 05:04 AM

AnIIFE(ImmediatelyInvokedFunctionExpression)isafunctionthatrunsassoonasitisdefined,createdbywrappingafunctioninparenthesesandimmediatelyinvokingit,whichpreventsglobalnamespacepollutionandenablesprivatescopethroughclosure;itiswrittenas(function(){/cod

How to parse a JSON string into a JavaScript object How to parse a JSON string into a JavaScript object Sep 21, 2025 am 05:43 AM

To parse JSON strings into JavaScript objects, you should use the JSON.parse() method, which can convert valid JSON strings into corresponding JavaScript objects, supports parsing nested objects and arrays, but will throw an error for invalid JSON. Therefore, you need to use try...catch to handle exceptions. At the same time, you can convert the value during parsing through the reviver function of the second parameter, such as converting the date string into a Date object, thereby achieving safe and reliable data conversion.

See all articles