Как получить доступ к значению входного тега

Обновление: я решил это, создав новую переменную, использовал ее и присвоил этой переменной finalPrice. Улучшение вопроса, поскольку я думаю, что это можно сделать по-другому Я хочу получить доступ к значению finalPrice, определенному здесь чуть выше функции add_to_download_entries:

 var counts = 1;
 var checkboxes;
 var finalPrice;

Приведенная выше finalPrice, к которой я хочу получить доступ и присвоить это значение внутренней функции payModal вместо finalPrice = 4444, должно быть значением, поступающим из finalPrice из приведенной выше переменной finalPrice, определенной над функцией add_to_download_entries. поэтому, когда я делаю finalPrice = "Pay Now $" + Number(counts) * Number(22); в функции document.ready, я хочу, чтобы это значение finalPrice было присвоено finalPrice = 44; здесь, в функции PayModal() вместо 44, как я могу это сделать?

<script>   
 // Pay Modal 
    async function payModal() {
      
      await fetch("{{ route('paymentModal') }}")
      .then(response => response.json())
        .then(response => {
          const form = document.getElementById('payment-form');
          _key_for_ss = response.paymentIntent.client_secret;
          paymentIntentID = response.paymentIntent.id;
          finalPrice = 44; 
          async function openModal() {
            await createCard();
            $('#pay-modal').modal('show');
          }
          openModal();
        })
    }
    
    var selected_lostwill_array = [];
    
     var counts = 1;
     var checkboxes;
     var finalPrice;
    function add_to_download_entries(data) {
       checkboxes = document.querySelectorAll('input[name = "checkWills"]:checked');
        counts = checkboxes.length;
      if ($.inArray(data, selected_lostwill_array) >= 0){
        selected_lostwill_array = $.grep(selected_lostwill_array, function(value){
             return value != data;
           });
         }else{
          selected_lostwill_array.push(data);
         }
         // DataTables Functions 
    $(document).ready( function () {
        $('#org_lost_table').DataTable();
        $('#all_lost_table').DataTable();
        if (counts>0){
             finalPrice = "Pay Now $" + Number(counts) * Number(22);
            
            $( "#payment-sub-btn" ).text(finalPrice);
           }else $( "#payment-sub-btn" ).text(0); 
    } );
    }
</script>

Пожалуйста, попробуйте .innerText вместо .textContent

Rinsad Ahmed 24.04.2023 02:55

К вашему сведению: for = "feCoupon" не имеет отношения к каким-либо элементам в HTML-документе, потому что нет элементов с этим id.

mickmackusa 24.04.2023 03:36

Внутренний текст @RinsadAhmed также получает весь текст $ pay now, но мне нужно только значение, равное 22 или 44 и т. д. после «pay now $44»

Hem 26.04.2023 02:38
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
3
174
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Я решил это, создав новую переменную с именем finalPrices и присвоив значение finalPrices finalPrices = Number(counts) * Number(22);, поэтому теперь он не получает текст, а просто целочисленное значение.

   var finalPrices;
    async function payModal() {
      
      await fetch("{{ route('paymentModal') }}")
      .then(response => response.json())
        .then(response => {
          const form = document.getElementById('payment-form');
          _key_for_ss = response.paymentIntent.client_secret;
          paymentIntentID = response.paymentIntent.id;
          finalPrice = finalPrices; 
          async function openModal() {
            await createCard();
            $('#pay-modal').modal('show');
          }
          openModal();
        })
    }

function add_to_download_entries(data) {
   checkboxes = document.querySelectorAll('input[name = "checkWills"]:checked');
    counts = checkboxes.length;
  if ($.inArray(data, selected_lostwill_array) >= 0){
    selected_lostwill_array = $.grep(selected_lostwill_array, function(value){
         return value != data;
       });
     }else{
      selected_lostwill_array.push(data);
     }
     // DataTables Functions 
$(document).ready( function () {
    $('#org_lost_table').DataTable();
    $('#all_lost_table').DataTable();
    if (counts>0){
       finalPrices = Number(counts) * Number(22);
         finalPrice = "Pay Now $" + Number(counts) * Number(22);
        
        $( "#payment-sub-btn" ).text(finalPrice);
       }else $( "#payment-sub-btn" ).text(0); 
} );
}

Хотя ваше собственное решение правильное, оно не самое лучшее.

Вам не нужно заключать число в Number(). Вы также должны сохранить вычисленное значение в переменной (как вы делаете), а затем ссылаться на это значение.

В качестве плюса вы можете использовать новые функции языка JavaScript, чтобы избежать запутанного использования + в конкатенации строк. Вместо этого вы можете использовать литералы шаблонов:

`${finalPrices}`

Таким образом, результирующий код с этими изменениями будет выглядеть так:

let finalPriceValue;
let finalPriceText;

function add_to_download_entries(data) {
  // ...
  // ...
  if (counts>0){
    finalPriceValue = Number(counts) * 22;
    finalPriceText = `Pay Now $${finalPriceValue}`;
    $( "#payment-sub-btn" ).text(finalPrice);
  }
}

Другие вопросы по теме