jQuery addClass 或 css 在特定条件下不工作
jQuery addClass or css not working on specific conditions
我正在尝试为代码跨度元素着色。我尝试了类似问题的各种解决方案,但它们似乎对我不起作用。在下面的代码中,只有 addClass
行不起作用。
代码片段 1
for (var m=0;m<software.length;m++)
{
alert('software['+m+'] :'+software[m].priority);
if(software[m].priority>=2)
{
alert('software['+m+'] :'+software[m].priority);
alert("$('#software["+m+"]').addClass('redClr');");
$('#software['+m+']').addClass('redClr');
}
software[m].priority=0;
alert('software['+m+'] :'+software[m].priority);
};
我尝试了 .css 方法,但它也不起作用。
$('#software['+m+']').css("color","red");
跨度元素根据某些条件动态生成。而且效果很好。 生成跨度的样本 ID:软件[0]
样本:
代码片段 2
if (checkedValues[j]==allValues[0]) {
$("#softwareLeft").append("<span class='boldText'>"+allValues[0]+" :</span><br>");
for(var k=0;k<software.length;k++) {
if(software[k].calculation==1){
//alert(software[k].name);
if(software[k].combo!=1){
$("#softwareLeft").append("<span class='softList' id='software["+k+"]'>"+software[k].name+"(Rs: "+software[k].prize+")</span><br>");
};
if(software[k].combo==1 && software[k].priority==0){
$("#softwareRight").append("<span class='softList'>"+software[k].name+"(Rs: "+software[k].prize+")</span><br>");
};
software[k].priority++;
};
};
并且已经将名为 'softList' 的 class 应用到仅包含以下 css 代码
的跨度元素
.softList{
margin-left: 30px;
}
并且两个代码都在同一个按钮点击下触发
$("#nextBtn").click(function() {
//Code fragment 2
//Code fragment 1
});
正如我所说,我已经对这个问题进行了很好的研究,发现了许多相似但又有些不同的问题。这个严格遵守特定条件,因此单独发布。
[XXX]
表示属性选择器,因此您需要转义 id 中的左括号和右括号。
$('#software\['+m+'\]')
在selectors documentation page之上进行了说明。
问题出在 ID 上。 HTML ID 属性值可以是数字和字符串的组合,如果您尝试使用 software0、software1、software2 作为 ID,代码将起作用。方括号导致了问题
或者你可以使用转义方括号
$('#software\['+m+'\]')
我正在尝试为代码跨度元素着色。我尝试了类似问题的各种解决方案,但它们似乎对我不起作用。在下面的代码中,只有 addClass
行不起作用。
代码片段 1
for (var m=0;m<software.length;m++)
{
alert('software['+m+'] :'+software[m].priority);
if(software[m].priority>=2)
{
alert('software['+m+'] :'+software[m].priority);
alert("$('#software["+m+"]').addClass('redClr');");
$('#software['+m+']').addClass('redClr');
}
software[m].priority=0;
alert('software['+m+'] :'+software[m].priority);
};
我尝试了 .css 方法,但它也不起作用。
$('#software['+m+']').css("color","red");
跨度元素根据某些条件动态生成。而且效果很好。 生成跨度的样本 ID:软件[0]
样本: 代码片段 2
if (checkedValues[j]==allValues[0]) {
$("#softwareLeft").append("<span class='boldText'>"+allValues[0]+" :</span><br>");
for(var k=0;k<software.length;k++) {
if(software[k].calculation==1){
//alert(software[k].name);
if(software[k].combo!=1){
$("#softwareLeft").append("<span class='softList' id='software["+k+"]'>"+software[k].name+"(Rs: "+software[k].prize+")</span><br>");
};
if(software[k].combo==1 && software[k].priority==0){
$("#softwareRight").append("<span class='softList'>"+software[k].name+"(Rs: "+software[k].prize+")</span><br>");
};
software[k].priority++;
};
};
并且已经将名为 'softList' 的 class 应用到仅包含以下 css 代码
的跨度元素.softList{
margin-left: 30px;
}
并且两个代码都在同一个按钮点击下触发
$("#nextBtn").click(function() {
//Code fragment 2
//Code fragment 1
});
正如我所说,我已经对这个问题进行了很好的研究,发现了许多相似但又有些不同的问题。这个严格遵守特定条件,因此单独发布。
[XXX]
表示属性选择器,因此您需要转义 id 中的左括号和右括号。
$('#software\['+m+'\]')
在selectors documentation page之上进行了说明。
问题出在 ID 上。 HTML ID 属性值可以是数字和字符串的组合,如果您尝试使用 software0、software1、software2 作为 ID,代码将起作用。方括号导致了问题
或者你可以使用转义方括号
$('#software\['+m+'\]')