Предупредить значение переменной
Как отобразить значение переменной в javascript в поле предупреждения?
Например, у меня есть переменная x = 100, а alert (x) не работает.
script, используемый в жирной обезьяне, находится здесь
var inputs = document.getElementsByTagName('input');
var new;
for (i=0; i<inputs.length; i++) {
if (inputs[i].getAttribute("name") == "ans") {
new=inputs[i].getAttribute("value"));
alert(new)
}
}
Ответы
Ответ 1
Несколько вещей:
- Вы не можете использовать
new
как имя переменной, это зарезервированное слово.
- В элементах
input
вы можете просто использовать свойство value
напрямую, вам не нужно проходить через getAttribute
. Атрибут "отражен" как свойство.
- То же самое для
name
.
Итак:
var inputs, input, newValue, i;
inputs = document.getElementsByTagName('input');
for (i=0; i<inputs.length; i++) {
input = inputs[i];
if (input.name == "ans") {
newValue = input.value;
alert(newValue);
}
}
Ответ 2
Обратите внимание: в то время как приведенные выше ответы верны, если вы хотите, вы можете сделать что-то вроде:
alert("The variable named x1 has value: " + x1);
Ответ 3
Если вы используете greasemonkey, возможно, страница еще не готова для javascript. Вам может потребоваться использовать window.onReady.
var inputs;
function doThisWhenReady() {
inputs = document.getElementsByTagName('input');
//Other code here...
}
window.onReady = doThisWhenReady;
Ответ 4
var input_val=document.getElementById('my_variable');for (i=0; i<input_val.length; i++) {
xx = input_val[i];``
if (xx.name == "ans") {
new = xx.value;
alert(new); }}
Ответ 5
показать окно предупреждения с использованием переменной с сообщением
<script>
$(document).ready(function() {
var total = 30 ;
alert("your total is :"+ total +"rs");
});
</script>
Ответ 6
Если я правильно понимаю ваш вопрос и код, я хочу сначала упомянуть три вещи перед тем, как поделиться своим кодом/версией решения. Во-первых, для name
и value
вам, вероятно, не следует использовать метод getAttribute()
, потому что они сами являются свойствами (переменной с именем) inputs
(при заданном индексе i
). Во-вторых, переменная, которую вы пытаетесь оповестить, является одной из нескольких частей терминов в JavaScript, которые обозначаются как "зарезервированные ключевые слова" или просто "зарезервированные слова". Как вы можете видеть в/в этом списке (по ссылке), new
явно зарезервированное слово в JS и никогда не должно использоваться как имя переменной. Для получения дополнительной информации просто зарезервированные слова Google в JavaScript. В-третьих, и, наконец, в самом заявлении о предупреждении вы пренебрегли включением точки с запятой. Одному и тому же иногда может быть достаточно, чтобы ваш код не работал, как ожидалось. [Кроме того: я не говорю это как совет, а скорее как наблюдение: JavaScript почти всегда прощает и позволяет иметь слишком много и/или ненужных точек с запятой, но, как правило, JavaScript также одинаково, если не более беспощаден, если/когда отсутствует (любой из ) необходимые, требуемые точки с запятой. Поэтому наилучшей практикой является, конечно, добавление точек с запятой только во всех необходимых точках и исключение их во всех других обстоятельствах. Но практически говоря, если у вас есть сомнения, это, вероятно, не повредит, добавив/включив дополнительный, но будет больно, игнорируя обязательный. Общие правила - это все объявления и назначения, заканчивающиеся точкой с запятой (такие как назначения переменных, предупреждения, инструкции console.log и т.д.), Но большинство/все выражения не такие (например, для циклов, а циклы, выражения функций Just Saying.] Но Я отвлекся.
function whenWindowIsReady() {
var inputs = document.getElementsByTagName('input');
var lengthOfInputs = inputs.length; // this is for optimization
for (var i = 0; i < lengthOfInputs; i++) {
if (inputs[i].name === "ans") {
var ansIsName = inputs[i].value;
alert(ansIsName);
}
}
}
window.onReady = whenWindowIsReady();
PS: Вы использовали оператор двойного присваивания в своем условном выражении, и в этом случае это не имеет значения, поскольку вы сравниваете строки, но, как правило, я считаю, что оператор тройного присваивания является способом перехода и более точным, поскольку будет проверять, являются ли значения EQUIVALENT WITHOUT TREPE CONVERSION, что может быть очень важным для других случаев сравнений, поэтому важно указать. Например, 1 == "1" и 0 == false являются истинными (когда обычно вы хотите, чтобы те возвращали false, так как значение слева было не таким же, как значение справа, без преобразования типа), но 1 === "1" и 0 === false являются ложными, как вы ожидали бы, потому что тройной оператор не полагается на преобразование типов при сравнении. Имейте это в виду на будущее.