0

私はこのような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 を持つ要素は 1 つしかありません。$('#boss-stuff') には $('#id') のリストがあります。$('#id') は li 要素であり、div の子 (ren) があります。そして、divクラスに背景色を追加したいです。

4

3 に答える 3

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>
于 2013-01-04T15:26:44.633 に答える
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;

}

于 2013-01-04T15:33:51.933 に答える
0

これを試して

var jStuff = $('#' + id).find('div')[0];
jStuff.addClass("highlight-stuff");
于 2013-01-04T15:15:09.230 に答える