2017-01-14 9 views
0

私は訪問者ビューポートの高さを取得し、この値を使用して要素の高さを変更したいと考えています。私はこれまで、Javascriptを使用してビューポートの高さを変数に格納してきました。次に、Javascript変数を入力として使用して要素を選択し、訪問者ビューポートの高さに「高さ」スタイルを変更しようとしました。javascript変数を使用して要素の高さを設定する

私が手にエラーがある:
キャッチされない例外TypeError:コメントは、それが唯一の1を取り、言ったように、未定義

私のJavascriptの

var h = Math.max(document.documentElement.clientHeight || 0); 
h = h + "px"; 
document.getElementsByTagName("form", "label").style.height = h; 
+0

それが要素を見つけることができないようです。 – greg

+0

[doc](https://developer.mozilla.org/en-US/docs/Web/API/Element/getElementsByTagName)を読んでください。 'getElementsByTagName()'は* one *文字列をとり、* collection *を返します。 – leaf

答えて

1

これは、ミックスに(非要求)CSSのソリューションを投げます平野CSSで実現するのは非常に簡単:
http://codepen.io/panchroma/pen/bgwpzz

CSS

form, label{height:100vh;} 
0

のプロパティ '高さ' を設定することはできません文字列。 ラベルの高さを変更するには、DIV、またはpにそれをラップする必要があります... その後:

var h = Math.max(document.documentElement.clientHeight || 0); 
    h = h + "px"; 

    var forms = document.getElementsByTagName("form"); 
    for(var i=0;i<form.length;i++){ 
    forms[i].style.height = h; 
    } 
    var divs = document.getElementsByTagName("div"); 
    for(var j=0;j<divs.length;j++){ 
    divs[j].style.height = h; 
    } 
+0

わかりやすくするために、このforループの "テスト"は何を表していますか?私はめったにJavascriptを使いません。 – Jake

+0

ありがとうございました。 – Jake

+0

@Mark Ameryあなたは正しいです。ラベルの高さを変更する方法はありますか? – GarbageCollector

0
var h = Math.max(document.documentElement.clientHeight || 0); 
h = h + "px"; 

//here you have a collection of labels 
var lbl = document.getElementsByTagName("label"); 
    for(var i=0;i<lbl.length;i++){ 
    lbl[i].style.height = h; 
} 
関連する問題