0

こんにちは、ページの読み込み時に div を非表示にし、チェックボックスがオン/オフのときに表示/非表示にしようとしています。これは私のコードです:

<asp:CheckBox ID="cb1" runat="server" Text="CB" />

<div runat="server" id="div1" style="display:none">
</div>

そして、ここにJavaScriptがあります:

window.onload = function () {
    $('#cb1').change(function () {
        display('div1');
    })
}

function display(id) {
    var traget = document.getElementById(id);
    if (traget.style.display == "none") {
        traget.style.display = "block";
    } else {
        traget.style.display = "none";
    }
}

私が得るエラーはこれです:

Uncaught TypeError: Cannot read property 'style' of null

これは私のコードの最後のバージョンです。私はすでに次のようなことを試しました:

document.getElementById('div1').style.display="block";
$('#div1').hide();

...および他の多くのオプション。

結果は同じです。助けてください

4

3 に答える 3

4

使ってrunat="server"いるので試してみてください

<%= div1.ClientID %> 

divのIDを取得するには、次のように関数を呼び出すことができます

display('<%= div1.ClientID %>');

またはclientidmode="static"マークアップで使用

<div runat="server" id="div1" style="display:none" clientidmode="static">
</div>
于 2013-08-26T10:14:07.233 に答える
1
function display(id) {
    if ($('#'+id).css('display') === 'none') {
        $('#'+id).show();
    } else {
        $('#'+id).hide();
    }
}
于 2013-08-26T10:18:14.087 に答える