我有一个使用jquery的post方法获取div的页面。然后我尝试将css应用于div并且它不起作用。当我使用jquery在已经在页面上的div上应用css时,它适用于它们。
Jquery的:
$('#next').click(function() {
$.post('getquestions.php', {number: number}, function(result){
$('#questionArea').html(result);
});
$('.quest').css( "border", "13px solid red" ); //this doesn't work
});
从getquestions.php中回应(这是正常的):
echo "<div id='question" . $question_number . "' class='quest'>";
答案 0 :(得分:1)
这是因为当你执行jquery的quest
函数时,你的类css
的div是不可用的。由于$.post
是一个异步函数,所以当$('#questionArea').html(result);
的回调执行时,div只会被$.post
添加到DOM中,所以你应该在那里进行css调用。
应该是这样的:
$('#next').click(function() {
$.post('getquestions.php', {number: number}, function(result){
$('#questionArea').html(result);
// the div is just added
$('.quest').css( "border", "13px solid red" );
});
// the div is not added to DOM yet since $.post has not finished fetching the result
});
答案 1 :(得分:0)
尝试使用$(document).find('.quest')
答案 2 :(得分:0)
在发布请求后尝试在.done()
中添加css怎么样?喜欢
$.post( "example.php", function() {
alert( "success" );
})
.done(function() {
alert( "second success" );
});
或
var posting = $.post( url, { s: term } );
// Put the results in a div
posting.done(function( data ) {
var content = $( data ).find( "#content" );
$( "#result" ).empty().append( content );
});
来源:jQuery.post