Передача значения в функцию из html

#javascript #jquery

#javascript #jquery

Вопрос:

Я пытаюсь передать значение из html в функцию, но когда я это делаю, я получаю сообщение об ошибке — ошибка ссылки: не могу найти переменную: «значение переменной». В приведенном ниже коде я удаляю пробелы и заменяю их символами подчеркивания, а затем пытаюсь передать это функции с именем onToDate .

 var theFunction2 = theFunction.replace(/ /g,"_");

$('#inserted').append('<div id="' theFunction2 '"><li onclick="onToDate(' theFunction2 ')"><img width="30px" height="25px" src="style/soccer.png"><div id="popupContactClose2">' counted '</div></img>'  rs.rows.item(0)['playing'] '</li>');
 

onToDate просто существует для предупреждения о переданном ему значении:

 function onToDate(hello){        

alert('' hello '');
console.log('' hello '');
}
 

Вот где я получаю ошибку. Я действительно не понимаю, что происходит, я использовал это раньше, и это работало нормально.

Любая помощь была бы отличной,

Спасибо

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

1. Элемент LI внутри элемента DIV? И элемент DIV внутри элемента IMG? Это недопустимо!

Ответ №1:

 onclick="onToDate(' theFunction2 ');
 

превращается во что-то вроде:

 onToDate(some_thing);
 

итак, в приведенном выше случае some_thing это переменная, которая есть undefined , что означает, что это ошибка ссылки.

Итак,

 onclick="onToDate("' theFunction2 '");
 

это должно быть исправлено

Ответ №2:

Прежде всего, @IAbstractDownvoteFactor прав. Вы должны onclick исправить определение.

Если этот код выполняется в $(document).ready() блоке, то ваша onToDate функция недоступна из этой области. Ваше click событие вызывается из глобальной области видимости. Вы должны определить это следующим образом;

 window.onToDate = function(hello){
    alert(hello);
}
 

И нет необходимости в этих одинарных кавычках…