<要望>
ユーザーが可変数の文字列に文字列を入力できるようにするJavaScriptアプリケーションを開発する
入力ウィジェット。ユーザーが文字列を入力すると、その長さが自動的に横に表示されます。
入力ウィジェット。インターフェイスを制御し、いくつかの機能を提供するためのボタンが用意されています。
•「セルの追加」ボタンをクリックすると、別の入力ウィジェットが追加されます。
•「セルの削除」ボタンをクリックすると、入力ウィジェットが削除され、常に少なくとも1つが残ります。
入力ウィジェット。
•「並べ替え」ボタンをクリックすると、表示されている文字列が並べ替えられます。
アプリケーションを3つのファイルに編成します。次の3つのファイルへのユーザーインターフェイスであるHTMLファイル
応用;ほとんどのJavaScriptコードを含むファイル。スタイリングルールを含むファイル。
1.シンプルなスタイリングの基本画面
A.目に見えるコンポーネントをほぼ中央に配置するスタイリングを提供します。また、変更します
背景のデフォルトの色。
2.セルの追加/セルの削除
A.ユーザーの便宜のために、アプリケーションは入力された文字列を記憶します。
ウィジェットが削除された後でもウィジェット。
B.ウィジェットが再度追加されると、保存された値がに表示されます。
ウィジェット。
3.入力と長さ
A.ユーザーがキーを入力するたびに、キーはそれぞれの文字列の長さをチェックして表示します
次のウィジェット(リアルタイムで)。
4.並べ替え
A.保存された文字列は、表示されていない場合、ソート操作に参加しないことに注意してください。
B.配列sort()メソッドを使用できます。
<問題点>
addボタンを押すとinput text が増えて、removeボタンを押すと、input textが消えるコードを書いたのですが、増えると、ボタンをまたいでしまうので、空欄テキストが増えると同時にボタンも下にずれるようにしたいのです。
// increment the index
index++;
// use cloneNode of javascript to make a clone
let clone = document.querySelector('#insideDiv_0').cloneNode( true );
// logic to add a new element
let id = clone.id;
let currentIndex = id.substring(id.indexOf("_")+1);
clone.id = 'insideDiv_' + index;
// check if the value of input to be added alredy exists in the global array
if(inputValues.length > index){
clone.getElementsByTagName('input')[0].value = inputValues[index];
clone.getElementsByTagName('span')[0].innerText = inputValues[index].length
}
else{
clone.getElementsByTagName('input')[0].value = '' ;
clone.getElementsByTagName('span')[0].innerText = '0'
}
// set the id as per the current index
clone.getElementsByTagName('input')[0].id = 'inputString_' + index
clone.getElementsByTagName('span')[0].id = 'length_' + index
// apend the element as child element
document.querySelector('#inp-wrap').appendChild( clone );
}
// function to set the length of inputstring
function setLength(e){
let id = e.srcElement.id;
let currentIndex = id.substring(id.indexOf("_")+1);
let inptSt = document.querySelector('#'+id).value.length;
let spanId = e.srcElement.nextElementSibling.id;
//check if it is a current index or not
if(inputValues.length > currentIndex){
inputValues[currentIndex] = document.querySelector('#'+id).value;
}
else{
inputValues.push(document.querySelector('#'+id).value);
}
let spanEl = document.getElementById(spanId);
// set the length in span element
spanEl.innerText = inptSt;
}
// function to remove the element the update the index value
function removeElement(){
let currentId = 'insideDiv_' + index ;
let inptSt = document.querySelector('#'+currentId);
inptSt.remove();
index--;
}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/13 22:30