2016-06-29 2 views
1

私は入力タグがJavaScriptによって含まれています。その結果、入力タグは次のようになります。私はinputタグの値の最後に変数を追加することができます任意の方法はgetElementByClassNameは入力値を変更します

<input class="mylivechat_prechat_name_box mylivechat_prechat_box" type="text"> 

ありますか?

私はフォームフィールドを設定するにはJavaScriptを使用してみました

var myClassName = document.getElementsByClassName('mylivechat_prechat_name_box mylivechat_prechat_box'); 
i = myClassName.length; 
myClassName[i].value = "TheseAreMyChanges"; 

はしかし、私はあなたのコードではエラー

Uncaught TypeError: Cannot set property 'value' of undefined

+0

インデックスは0 – Teemu

+0

から始まり、あなたが実際に* *を達成しようとしているかを説明することはできますか?その完全に明確でない – Jamiec

+0

こんにちはJamiec、はい、フォームの入力値を変更しようとしています - これは以前にロードされたJavaScriptによって生成/生成されています。何らかの理由で、私はいつも未定義のエラーを受けています。 –

答えて

0

を取得iは長さを保持しているためmyClassName[i]は、undefinedになります最大インデックス値はlength - 1となります。文字列は末尾に+=で付加することができ、連結された値になります。

var myClassName = document.getElementsByClassName('mylivechat_prechat_name_box mylivechat_prechat_box'); 
myClassName[0].value += "TheseAreMyChanges"; 

あなたは最後の要素を更新したい場合は、インデックスで要素を取得length -1

var myClassName = document.getElementsByClassName('mylivechat_prechat_name_box mylivechat_prechat_box'); 
myClassName[myClassName.length - 1].value += "TheseAreMyChanges"; 
0

アレイのゼロベースなので、あなたがlengthを読み、そのインデックスを使用している場合、それは最高のより1つです素子。 undefinedを返します。配列の範囲外の要素を読み取ろう - そうlength-1を使用します。

var myClassName = document.getElementsByClassName('mylivechat_prechat_name_box mylivechat_prechat_box'); 
var i = myClassName.length; 
myClassName[i-1].value = "TheseAreMyChanges"; 
0

あなたはquerySelectorを使用することができます。

document.querySelector('.mylivechat_prechat_name_box.mylivechat_prechat_box').value+='NEW'; 

あなたがしたい場合は、セレクタの最後に:last-childを追加最後の要素を取得してください:

document.querySelector('.mylivechat_prechat_name_box.mylivechat_prechat_box:last-child'); 

希望します。返されたコレクションの


var elem = document.querySelector('.mylivechat_prechat_name_box.mylivechat_prechat_box'); 
 
elem.value += ' NEW';
<input class="mylivechat_prechat_name_box mylivechat_prechat_box" type="text" value='OLD'/>

+1

あなたは何を望んでいると思いますか?最初の要素は、質問に関するすべてが*最後の*を望んでいたことを示していますか? – Jamiec

+0

Thanks @Jamiecは私の答えを更新しました: 'last-child'はそれをカバーしています.. –

関連する問題