1

Stack にも同様の質問がいくつかありますが、私の質問は私の側の構文エラーの結果だと思います。とにかく、JavaScript でライトボックスを作成していleft %て、要素の幅の半分になるように絶対位置 (css) を動的に設定したいと考えています。

これはコードの抜粋です。完全なコードはこちらhttp://jsfiddle.net/Yab3Q/4/

var modal = document.getElementById(btnId+"-modal");
var modalChildren = modal.childNodes;

for (var x = 0; x<modalChildren.length; x++){
    if (!(modalChildren[x].className === "lightBox")){
        var childWidth = modalChildren[x].offsetWidth;
        var halfWidth = childWidth / 2;
        modalChildren[x].style.left = halfWidth + "px";
    }
}

この行modalChildren[x].css.left = halfWidth + "px";は、「Uncaught TypeError: プロパティ 'left' を未定義に設定できません」を返しています。ただし、modalChildren[x].classNameどちらmodalChildren[x].offsetWidth;も期待値を返すため、ここで css を表示できるのに更新できない理由がわかりません。

4

2 に答える 2

1

テキスト ノードにはスタイル プロパティがありません: ログとチェック:

for (var x = 0; x<modalChildren.length; x++){
            console.log(modalChildren[x]);
            console.log(modalChildren[x].style);
            if (!(modalChildren[x].className === "lightBox")){
                var childWidth = modalChildren[x].offsetWidth;
                var halfWidth = childWidth / 2;
                modalChildren[x].style.left = halfWidth + "px";
            }
        }

ノードの種類を見てみましょう: http://www.javascriptkit.com/domref/nodetype.shtml

于 2012-12-15T06:35:51.387 に答える
1

次の要素のスタイル プロパティを変更しようとしています:

0: <div>
1: #text
2: <img>
3: #text

このリストは、次のように入力して表示できます。

console.log(modalChildren) 

textNode にはスタイル プロパティがないため、エラーがスローされます

于 2012-12-15T06:36:23.463 に答える