私はそれをクリックすると、ページ上のすべての同じ要素ボタンをクリックし、機能が完了した後、すべての'Pはドロップダウンしている。私はページ上に複数の 'pf'クラスを持っており、すべてをPに設定する必要があります。最初の関数は動作していますが、2番目の関数に到達すると、option.lengthが定義されていないことを示すエラーがあります。私の質問は、どのようにクラス内のすべてのオプション数を取得するのですか?クラスのドロップダウンオプションを選択するJavascript
//Get select object
var objSelect = document.getElementsByClassName("pf");
これはただの選択ドロップダウンを返さない - it returns an HTMLCollection(すなわち、要素のグループ)は、そのクラス名を一致任意の要素を持つ:
function clickUpdate(_callback) {
var updateArray = document.getElementsByClassName("updateButton");
[].slice.call(updateArray).forEach(function(item) {
item.click();
});
console.log("this is the array legnth: " + updateArray.length);
_callback();
}
//Get select object
var objSelect = document.getElementsByClassName("pf");
//Set selected
setSelectedValue(objSelect, "P");
function setSelectedValue(selectObj, valueToSet) {
clickUpdate(function(){
console.log("I am done with the first function");
});
for (var i = 0; i < selectObj.options.length; i++) {
if (selectObj.options[i].text == valueToSet) {
selectObj.options[i].selected = true;
return;
}
}
}
<select class="pf">
<option selected="selected" value="">Not Run</option>
<option value="P">Pass</option>
<option value="F">Fail</option>
<option value="N">N/A</option></select>
ChromeDevツールでは、 'var objSelect = document.getElementsByClassName(" pf ");'にブレークポイントを設定できます。 'objSelect'の値を見てください。 –