предупреждение не показывает getElementbyId в JavaScript - PullRequest
1 голос
/ 27 мая 2011
function showPrice(){ 

    var a = document.getElementById("product_container15");

    if (a == "$1,599.00"){
        alert(a);
    }
    else {
        alert("$1,499.00");
    }
}

Это все время возвращает $ 1 499,00. Я знаю, что я делаю это неправильно, или, может быть, есть совершенно другой способ написать это. Я хочу, чтобы уведомление показывало $ 1,599.00, если идентификатор равен «product_container15». Если это не так, то предупреждение покажет $ 1 499,00. Может ли кто-нибудь показать мне, как это делается? Спасибо!

Ответы [ 4 ]

5 голосов
/ 27 мая 2011

в вашем случае a является html-объектом, поэтому он никогда не будет "$ 1,599.00", может быть, вам следует попробовать вот так

function showPrice(){ 

var a = document.getElementById("product_container15").value;

if (a == "$1,599.00"){
alert(a);
}
else {
alert("$1,499.00");
}
}
5 голосов
/ 27 мая 2011

a это элемент - хотите ли вы содержимое?

Если это HTML-разметка, попробуйте textContent или (для IE innerText):

alert(a.textContent);

Или эквивалент (для текстовых узлов) nodeValue:

alert(a.nodeValue);

Если a является элементом формы (input, textarea и т. Д.), Используйте свойство value:

alert(a.value);
1 голос
/ 27 мая 2011

Это потому, что a содержит Element.Чтобы получить html этого элемента, выполните a.innerHtml или a.innerText.

var a = document.getElementById("product_container15").innerText;

if (a == "$1,599.00"){
    alert(a);
}
else {
    alert("$1,499.00");
}
0 голосов
/ 27 мая 2011

Я думаю, что и Сенад, и Мохамед правы, но оба они допускают две разные вещи.Сена предполагает, что product_container15 является вводом, в то время как Мохамед предполагает, что это элемент контейнера, такой как "".

Итак, просто мои 2 цента, если product_container15 является элементом "input", тогда:*

Если это div, span или любой другой элемент, то:

var a = document.getElementById("product_container15").innerText;

if (a == "$1,599.00"){
    alert(a);
}
else {
    alert("$1,499.00");
}
...