VanillaJS-divの名前で要素を取得
Aug 21 2020
このjQueryコマンドをJavaScriptで翻訳する必要があります。
$('#edit_pickup_date_modal').find('input[name=type]').val('2');
私がしようとしました:
var element = document.getElementById('edit_pickup_date_modal');
var input = element.getElementsByName('type')[0];
input.value = '2'
しかし、「element.getElementsByNameは関数ではありません」というエラーが発生しました
回答
3 Sascha Aug 21 2020 at 21:35
getElementById
IDが「edit_pickup_date_modal」のタグを取得するために使用します。querySelector
名前= 'type'の最初のINPUTフィールドを検索して、値を設定するよりも。
document.getElementById('edit_pickup_date_modal').querySelector('input[name=type]').value=2;
<div id='edit_pickup_date_modal'>
<div>
<input name ='type'>
</div>
</div>
3 Nithish Aug 21 2020 at 21:37
getElementById
、などのDOMの要素の検索の詳細querySelector
については、こちらを参照してください。
const modalDiv = document.getElementById('edit_pickup_date_modal')
const inputElem = modalDiv.querySelector('input[name=type]');
inputElem.value = 2
<div id="edit_pickup_date_modal">
<input name="type"/>
</div>
1 DanielBeck Aug 21 2020 at 21:42
操作全体を1つにまとめることもできますquerySelector
。
document.querySelector('#edit_pickup_date_modal input[name=type]').value=2;
<div id='edit_pickup_date_modal'>
<div>
<input name ='type'>
</div>
</div>
1 toto Aug 21 2020 at 21:52
jQueryの同等のバニラ関数 $('#edit_pickup_date_modal').find('input[name=type]').val('2');
は:
document.querySelectorAll('#edit_pickup_date_modal input[name=type]').forEach(function(obj, index){
obj.value=2;
});
//If you need to take the first element only.
document.querySelector('#edit_pickup_date_modal input[name=type]').value=3;
<div id="edit_pickup_date_modal">
<input name="type"/>
<input name="type"/>
<input name="type"/>
<input name="type"/>
</div>
そしてそれは意味します:
input[name=type]
IDを持つ要素内のそれぞれについてedit_pickup_date_modal
、そのvalue
プロパティに定数値2を割り当てます。