Конкатенация в селекторе jQuery
Простая проблема. У меня есть переменная js, которую я хочу объединить в селектор jQuery. Однако он не работает. Ошибок не возникает. Что не так? Как правильно конкатенировать переменную в какой-либо текст в селекторе jQuery.
<div id="part2"></div>
<script type="text/javascript" >
$('#button').click(function ()
{
var text = $('#text').val();
var number = 2;
$.post('ajaxskeleton.php', {
red: text
},
function(){
$('#part' + number).html(text);
});
});
</script>
Ответы
Ответ 1
Нет ничего плохого в синтаксисе
$('#part' + number).html(text);
jQuery принимает строку (обычно селектор CSS) или DOM Node в качестве параметра для создания объект jQuery.
В вашем случае вы должны передать String в $()
, который
$(<a string>)
Убедитесь, что у вас есть доступ к переменным number
и text
.
Для проверки выполните:
function(){
alert(number + ":" + text);//or use console.log(number + ":" + text)
$('#part' + number).html(text);
});
Если вы видите, что у вас нет доступа, передайте их в качестве параметров функции, вы должны включить uual параметры для $.get и передать им пользовательские параметры.
Ответ 2
Правильный синтаксис конкатенации.
Скорее всего, функция обратного вызова даже не вызывается. Вы можете проверить это, поместив строку alert()
, console.log()
или debugger
в эту функцию.
Если он не вызывается, скорее всего, есть ошибка AJAX. Посмотрите на привязку обработчика .fail()
после $.post()
, чтобы узнать, что такое ошибка, например:
$.post('ajaxskeleton.php', {
red: text
}, function(){
$('#part' + number).html(text);
}).fail(function(jqXHR, textStatus, errorThrown) {
console.log(arguments);
});