我有这样的div:
<div onclick="highlightFunction(<?php echo $id?>);">
我有以下js代码:
function highlightFunction(id) {
var id = "stuff" + stuff_id;
$('#boss-stuff').find('div').removeClass('highlight-stuff');
var stuff = $('#' + id).find('div')[0];
var jStuff = $(stuff);
jStuff.addClass("highlight-stuff");
}
此代码位于onlick句柄函数中。
“highlight-stuff”类只是添加背景颜色。
我尝试过各种各样的方法,从带有document.getElementById()。className的javascript到jQuery element.attr(“class”,“stuff”)等等。所有工作都适用于各种浏览器,但IE 8和9不起作用。背景没有改变。
请帮助和谢谢,我真的很感激。如果您需要更多代码,请告诉我。
有些人解释说:id是唯一的,因此只有一个元素具有相同的id。 $('#boss-stuff')有一个$('#id')列表。 $('#id')是一个li元素,有div子(ren)。我想为div类添加背景颜色。
答案 0 :(得分:0)
试试这个
var jStuff = $('#' + id).find('div')[0];
jStuff.addClass("highlight-stuff");
答案 1 :(得分:0)
它在其他浏览器中运行而不是IE
的事实听起来像是在DOM Ready
事件中不包含您的代码。我记得刚才有类似的问题。
您可以尝试(如果您的代码不在DOM ready事件中):
<强> HTML 强>
<div onclick="highlightFunction(<?php echo $id?>);">
<强>的Javascript 强>
<script type="text/javascript">
// This is really important.. make sure all jQuery is inside the DOM ready event
$(function(){
function highlightFunction(id) {
var id = "stuff" + stuff_id;
$('#boss-stuff').find('div').removeClass('highlight-stuff');
var stuff = $('#' + id).find('div')[0];
var jStuff = $(stuff);
jStuff.addClass("highlight-stuff");
}
});
</script>
答案 2 :(得分:0)
也许你的HTML层次结构太复杂了?我试过这个,addClass适用于所有浏览器。
HTML
<div id="boss-stuff">
<div id="stuffst123456">
<div id=""class="">Div without class</div>
<div id="" class="highlight-stuff">Div With Class</div>
</div>
<div id="st123457">Other Div</div>
</div>
<input id="testBtn" type="button" value="Click Me" />
的JavaScript
<script type="text/javascript">
$(document).ready(function () {
$("#testBtn").click(function () {
var id = "stuff" + "st123456";
$('#boss-stuff').find('div').removeClass('highlight-stuff');
var stuff = $('#' + id).find('div')[0];
var jStuff = $(stuff);
jStuff.addClass("highlight-stuff");
});
});
</script>
CSS
.highlight-stuff {
color: #ff0000;
}