我有一个div(div.row)列表,我需要更新背景颜色。目前我通过CSS设置背景颜色与div.row:nth-child(单数)和div.row:nth:child(偶数)..
div.row是通过点击删除 - 然后它成功,我需要它来更新整行,所以它仍然每秒都有不同的背景..
我该怎么做?
我的剧本现在是:
<script type="text/javascript">
$(document).ready( function() {
$("a.delete").click(function(){
$.ajax({
type: "POST",
url: "...",
data: { this_page_id: $(this).prev().val() },
success: function(){
$(".success-delete").css("display","block");
},
async: false,
dataType: "html"
});
$("#r" + $(this).prev().val()).slideUp();
var i = 1
$("div.row").each( function(index){
if( i % 2 ){
$(this).css('background-color','#ffffff');
} else {
$(this).css('background-color','#ececec');
}
i++;
});
});
});
</script>
答案 0 :(得分:3)
jQuery需要大量的选择器:
$('div.row:even').css('background-color', 'white');
$('div.row:odd').css('background-color', '#ececec');
这是一个巨大的列表:http://api.jquery.com/category/selectors/。
答案 1 :(得分:0)
这不起作用吗?
$(document).ready( function() {
$("a.delete").click(function(){
$.ajax({
type: "POST",
url: "...",
data: { this_page_id: $(this).prev().val() },
success: function(){
$(".success-delete").css("display","block");
doRows();
},
dataType: "html"
});
$("#r" + $(this).prev().val()).slideUp();
function doRows() {
$("div.row").each( function(index){
if( index % 2 ){
$(this).css('background-color','#ffffff');
} else {
$(this).css('background-color','#ececec');
};
});
};
doRows();
});
});
答案 2 :(得分:0)
如果我理解正确的话: 如果从中间删除其中一行,则可能必须重新运行循环以重置行的BG颜色。如果要删除的行位于底部,则无需执行任何操作。
重置行BG将在处理行删除的点击事件处理程序中完成。
我还建议使用css类而不是直接样式。 您可以使用.removeClass(),. addClass()
希望这会有所帮助。
答案 3 :(得分:0)
这是解决方案..最后发现: - )
我发帖希望它对别人有用 - 非常感谢你的帮助!
$(document).ready( function() {
$("a.delete").click(function(){
var id = $(this).prev().val();
$.ajax({
type: "POST",
url: "/nsautolak.dk/admix/pages/delete/",
data: { this_page_id: $(this).prev().val() },
success: function(){
$(".success-delete").css("display","block");
$("#r" + id).removeClass("block").slideUp();
$("div.block:odd").css('background-color','#ececec');
$("div.block:even").css('background-color','#ffffff');
},
async: false,
dataType: "html"
});
});
});