Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   innerHTML и value не работают!!! (https://javascript.ru/forum/misc/52777-innerhtml-i-value-ne-rabotayut.html)

Konstantinov 06.01.2015 14:22

innerHTML и value не работают!!!
 
Есть функция
function buyDialog( nameBuy, idBuy ) {
	$('#whatToBuy').innerHTML = nameBuy;
	$('#idBuy').value = idBuy;
	showDialog($('#buy'));
}

и строки
<span id="whatToBuy"></span>
<input name="idBuy" type="hidden" id="idBuy" value="">

функция вызывается так
buyDialog('AK-47', '1');

И знаете что?
Срабатывает как надо только
showDialog($('#buy'));

а
$('#whatToBuy').innerHTML = nameBuy;
$('#idBuy').value = idBuy;

игнорируются!
Вот почему я ненавижу долбанный javascript!
Помогите, в чем ошибка, пожалуйста.

P.S. Я конечно не совсем дебил и поэтому JQuery у меня подключена.

Erolast 06.01.2015 14:50

Цитата:

Вот почему я ненавижу долбанный javascript!
Потому что не разбираешься в нем?
Цитата:

Я конечно не совсем дебил...
Уверен? С чего ты вообще взял, что добавление свойств объекту jQuery отразится на элементах?

Malleys 06.01.2015 14:54

$-функция возвращает список элементов, а не сам элемент.
Поэтому надо так:
function buyDialog( nameBuy, idBuy ) {
	$('#whatToBuy')[0].innerHTML = nameBuy;
	$('#idBuy')[0].value = idBuy;
	showDialog($('#buy'));
}

Или так (вообще без jQuery)
function $(id) {
  return document.getElementById(id);
}
function buyDialog( nameBuy, idBuy ) {
	$('whatToBuy').innerHTML = nameBuy;
	$('idBuy').value = idBuy;
	showDialog($('buy'));
}

Erolast 06.01.2015 15:05

Цитата:

Поэтому надо так:
function buyDialog( nameBuy, idBuy ) {
    $('#whatToBuy')[0].innerHTML = nameBuy;
    $('#idBuy')[0].value = idBuy;
    showDialog($('#buy'));
}

function buyDialog( nameBuy, idBuy ) {
    $('#whatToBuy').html(nameBuy);
    $('#idBuy').val(idBuy);
    showDialog($('#buy'));
}

Konstantinov 07.01.2015 01:23

Спасибо за ответы
 
Вы все мне сильно помогли и открыли глаза на многие проблемы которые я не мог решить. Очень хороший форум с хорошими людьми.


Часовой пояс GMT +3, время: 21:06.