0

リスト項目の横にあるチェック ボックスがオンになっているときに、リスト項目に線を引こうとしています。なんとかできましたが、ボックスがチェックされているかどうかを確認できません。

JS ファイル

    if(document.getElementById(theID).checked){

document.getElementById(theID).setAttribute("style", "text-decoration:line-through");
}

HTML/PHP

                echo'<ol>';
            foreach($to_do_XML->task as $item)
            {
                $theID = $item['id'];

            echo '<li id="'.$theID.'">'.$item.'</li>' ;?><form ><input  onclick="return cross('<?=$theID?>');" type="checkbox" name="done<?php $li_id_num_done ?>"/></form>
                 <?php     

            }
            echo '</ol>';

また、xml要素をループするforeachループ内にリスト項目が追加されていることを追加する必要があります

上記のコードは何の助けにもなりません

4

2 に答える 2

4

が文字列の場合$theIDは、引用符で囲む必要があります。

     <input  onclick="return cross('<?php echo $theID; ?>');" type="checkbox" name="done<?php $li_id_num_done ?>"/>

これも関数から削除します。

got_elements_id

参照エラーになります。

于 2012-11-26T15:44:34.707 に答える
0

これは私が信じているより良いでしょう:

echo '<li id="'.$theID.'">'.$item.'</li>' ;?>
<form >
    <input  onclick="return cross('<? echo $theID; ?>');" type="checkbox" name="done<?php $li_id_num_done ?>"/>
</form>

function cross( id ){

    var element = document.getElementById( id );
    if( element.checked){

        element.style.textDecoration = "line-through";
    }
}

あるいは:

function cross( id ){

    var element = document.getElementById( id );        
    element.style.textDecoration = element.checked ? "line-through" : "";
}

これにより、ラインスルーのチェックを外して削除することもできます。

于 2012-11-26T15:58:33.493 に答える