#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);
}
И нет необходимости в этих одинарных кавычках…