предупреждение не показывает getElementById в javascript

#javascript #getelementbyid #alerts

#javascript #getelementbyid #предупреждения

Вопрос:

 function showPrice(){ 

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

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

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

Ответ №1:

в вашем случае 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:

a это элемент — вам нужно содержимое?

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

 alert(a.textContent);
  

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

 alert(a.nodeValue);
  

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

 alert(a.value);
  

Комментарии:

1. .innerText небезопасен для всех браузеров, не так ли?

2. @Shane: Нет, это не так. Должно быть a.textContent || a.innerText тогда.

3. @Oded: Я не думаю, что textContent работает в IE, хотя 😉 Смотрите: quirksmode.org/dom/w3c_html.html#t07

4. @Felix — спасибо. @ShaneBlake — да, вся эта боль просто уходит (дайте мне val() любой день).

Ответ №3:

Это потому, что 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");
}
  

Комментарии:

1. Спасибо. идентификатор находится внутри тега <p> . Текст в теге <p> содержит цену.

Ответ №4:

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

Итак, всего лишь мои 2 цента, если product_container15 является элементом «input», тогда:

 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");
}
  

Комментарии:

1. Я не могу ввести весь свой код, потому что слишком много текста. мне приходится ждать пять минут, чтобы ввести больше. вот первый div……….. < div class=»grid_4″ id=»product_container»> <a href=»images/02_md.jpg «><img src=»images/02_sm.jpg » width=»100″ height =»100″ class=»small» /></a> <p class=»text»> Jeep Laredo 1980 года выпуска <br />(Цвет: лунное серебро)<br />4-дверный</p> <p class=»price» id=»1599″>$1,599.00</ p> <p id=»viewButton»><тип ввода = «кнопка» значение = «Просмотреть подробнее» onclick =»»/></p> </div>

2. Я попытался пересмотреть функцию } function showPrice(){ var a = document.getElementById("1599").innerHTML; var b = document.getElementById("1499").innerHTML; if (a == "$1,599.00"){ alert(a); } else { alert(b); } }

3. @Oded, pedrodg, спасибо! — вот еще html <div class="grid_4" id="product_container"> <a href="images/03_md.jpg"><img src="images/03_sm.jpg" width="100" height="100" class="small"/></a> <p class="text"> 1980 Ford Pinto (Color: White) <br />2-door</p> <p class="price" id="1499">$1,499.00</p> <p id="viewButton"><input type="button" value="View More" onclick=""/></p> </div>

4. помогает ли вообще какой-либо из только что предоставленных мной кодов? Спасибо, что помогаете мне учиться.

5. @Mick, попробуй использовать jsfiddle. подключитесь к сети, чтобы разместить ваш пример кода. Я разместил версию этого с некоторыми небольшими изменениями в вашем коде, где я проверяю, равен ли объект null, и, похоже, это работает …. jsfiddle.net/pedrito/syWCd