我有一个动态生成的按钮列表......
var output="";
var active;
var x;
var i;
var user_id=localStorage.get('user_id');#
for(x=0;x<dynamic_count;x++)
{
output+="<div class='tbl' data-role='button' data-table_id='"+(x+1)+"'>";
output+="<p class='center_text'>"+(x+1)+</p>";
output+="<div>";
}
$('.table_holder').html(output).trigger('create');
//active and active_count come from AJAX request (I have missed this bit our of the code..active[0]=a table number where as active[1]= s user_id
for(i=0;i<active_count;i++)
{
if(active[1]==user_id)
{
$('.tbl').find("[data-table_id='"+active[0]+"']").css('backgroundColor', 'red');
}
}
不幸的是,这对所需元素的背景颜色没有影响。我不确定我的选择器代码,我的css代码或我实现jQuery Mobile的问题是否存在问题。
我注意到在动态添加需要使用jQuery Mobile样式的元素时,我需要使用trigger('create')
方法来应用css。
这显然是用原始的jQuery css编写任何修改过的css。
答案 0 :(得分:2)
首先,创建一个自定义类,例如.custom-class
CSS:请注意,!important
对于覆盖JQM默认样式至关重要。
.custom-class { background-color: red !important; }
<强>代码:强>
找到包含[data-table_id]
属性的所有按钮,比较值并应用.custom-class
var buttons = $(document).find('a[data-table_id]');
$.each(buttons, function () {
$(this).removeClass('custom-class');
if ($(this).attr('data-table_id') == user_id) {
$(this).addClass('custom-class');
}
});
<强> Similar demo 强>
答案 1 :(得分:0)
试试这个
$('.tbl').find("[data-table_id='"+active[0]+"']").css('background-color', 'red');
你正试图像这样分配背景颜色
$('.tbl').find("[data-table_id='"+active[0]+"']").css('backgroundColor', 'red');
在jquery中你需要使用background-color而不是backgroundColor