警告不在javascript中显示getElementbyId

时间:2011-05-27 14:10:16

标签: javascript getelementbyid alerts

function showPrice(){ 

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

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

这一直在返回$ 1,499.00。我知道我做错了,或者也许有一种完全不同的方式来写这个。如果id为“product_container15”,我希望警报显示$ 1,599.00。如果不是那么警报将显示$ 1,499.00。有人能告诉我这是怎么做到的吗?谢谢!

4 个答案:

答案 0 :(得分:5)

a是一个元素 - 你想要内容吗?

如果这是HTML标记,请尝试textContent或(对于IE innerText):

alert(a.textContent);

或等效(对于文本节点)nodeValue

alert(a.nodeValue);

如果a是表单元素(inputtextarea等...),请使用value属性:

alert(a.value);

答案 1 :(得分:5)

在你的情况下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");
}
}

答案 2 :(得分:1)

那是因为a包含Element。要获取该元素的html,请执行a.innerHtmla.innerText

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

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

答案 3 :(得分:0)

我认为Senad和Mohamed都是正确的,但他们两个都假设有两个不同的东西。 Sena假设product_container15是一个输入,而Mohamed假设它是一个容器元素,如“”。

所以,如果product_container15是一个“输入”元素,那么我只需要2美分,那么:

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

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

如果是div,span或任何其他元素,那么:

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

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