динамическое изменение максимального диапазона и document.getElementById

Стандартный SQL (или MySQL) не позволяет использовать псевдонимы столбцов в предложении WHERE, потому что

при вычислении предложения WHERE значение столбца может еще не определено.

blockquote>

(из документации MySQL ). Вы можете вычислить значение столбца в предложении WHERE , сохранить значение в переменной и использовать его в списке полей. Например, вы можете сделать это:

SELECT `users`.`first_name`, `users`.`last_name`, `users`.`email`,
@postcode AS `guaranteed_postcode`
FROM `users` LEFT OUTER JOIN `locations`
ON `users`.`id` = `locations`.`user_id`
WHERE (@postcode := SUBSTRING(`locations`.`raw`,-6,4)) NOT IN
(
 SELECT `postcode` FROM `postcodes` WHERE `region` IN
 (
  'australia'
 )
)

Это позволяет избежать повторения выражения, когда оно усложняется, что упрощает его работу.

0
задан Zeeshan Adil 13 July 2018 в 10:05
поделиться

2 ответа

val() используется в jQuery, для javascript вам нужно использовать value

. В javascript, если вы хотите использовать входное значение, используйте

document.getElementById('aaa').value

Вместо

document.getElementById('aaa').val()

Если вы хотите использовать текст элемента, вы можете использовать

document.getElementById('aaa').innerHTML

ИЛИ

document.getElementById('aaa').innerText

var zzz = document.getElementById('aaa').innerText;
document.getElementById('slider1').max = zzz;

const $mutuo = $("#mutuo"),
        $rata = $("#rata"),
        $anni = $("#anni"),
        $slider1 = $("#slider1"),
        $slider2 = $("#slider2"),
        $max = $("#aaa").html();

function showAmount1(newAmount) {
 document.getElementById('mutuo').innerHTML = newAmount;
 $mutuo.val($("#mutuo").innerHTML);
 update();
}

function showAmount2(newAmount) {
 document.getElementById('anni').innerHTML = newAmount;
 $anni.val($("#anni").innerHTML);
 update();
}

function update() {
 let interesseannuo = 1.60,
         C = $mutuo.html(),
         anni = $anni.html(),
         i = interesseannuo / 12 / 100,
         n = anni * 12,
         rata = C * i / (1 - Math.pow(1 + i, -n));

 $rata.html(rata.toFixed(2) + " €");
}
update();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="info-text-wrapper">
    <p  class="info-paragraph black" val="123456" id="aaa">123456</p>
    <p  class="info-paragraph black">Totale mutuo (€)</p>
     <input type="range" min="0" max="" value="" step="10" onchange="showAmount1(this.value)" id="slider1"/>
    <div class="info-paragraph black" type="text" id="mutuo" >10000</div><br><br><br>
    <p class="info-paragraph black">Durata mutuo (anni)</p>
    <input type="range" min="10" max="30" value="10" step="5" onchange="showAmount2(this.value)" id="slider2">
    <div class="info-paragraph black" type="text" id="anni" >10</div><br><br><br>
    <p class="info-paragraph black">La tua rata</p>
    <div class="paragraph" id="rata"></div><br>
</div>

4
ответ дан Jagjeet Singh 17 August 2018 в 13:11
поделиться
Функция

val () только выбирает значение входных элементов. Чтобы получить текст других элементов, вам нужно использовать innerHTML или innerText. Просто замените

var  zzz = document.getElementById('aaa').val();   

на

var  zzz = document.getElementById('aaa').innerText;   

Он должен работать.

2
ответ дан Sagar Tamang 17 August 2018 в 13:11
поделиться
  • 1
    Это предложение в порядке, если содержимое div не является динамическим. Но если div innerText динамически генерируется, он не работает. Для этого мне пришлось обернуть эту часть в $(document).ready funcion(). Но теперь у меня другая проблема. Если вы видите этот jsfiddle , структура страницы сложнее, и я хочу, чтобы, когда я нажимаю на эти уродливые серые кнопки, цена меняется динамически и даже слайдер max .. Возможно ли это? Могу ли я связаться с вами напрямую? возможно, проще понять ... – Stefano Zanetti 13 July 2018 в 10:55
Другие вопросы по тегам:

Похожие вопросы: