#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#t074. @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