非常に遅いです。私はjQueryソリューションを考え出しましたが、読み込み時間の点では高価でしたが、私はJavascriptソリューションを考え出していますが、私は立ち往生しています。私はJSに慣れていないので、DOMについて多く知っています。このJavaScriptは私が達成しようとしている何
私が与えたHTMLは、それ自身100回(同じ正確なスケルトン)を繰り返します。コードをより効率的にするにはどうすればよいですか?また、私は "nullのプロパティタイトルを設定できません"エラーを取得しています。
var ratedSection = document.getElementsByClassName('RatedSection');
var ratedQuest = document.getElementsByClassName('RatedQuest');
var selector = document.getElementsByClassName('Selector');
for (var i = 0; i < ratedSection.length; i++) { //loops through ratedsection
var left = ratedSection[i].querySelector('.Left');
var right = ratedSection[i].querySelector('.Right');
left = left.innerHTML.replace(/<br>/g, " ");
right = right.innerHTML.replace(/<br>/g, " ");
for (var j = 0; j < ratedQuest.length; j++) {
for (var k = 0; k < selector.length; k++) {
var index = ratedQuest[j].querySelector('input').value;
if (index == 1)
selector[k].querySelector('abbr').title = left;
else if (index == max)
selector[k].querySelector('abbr').title = right;
}
}
}
<table class="RatedSection">
<tr class="Header">
<td class="Left">Stuff
<br>inside
<br>here
</td>
<td class="Right">More
<br>stuff
<br>inside
<br>here
</td>
</tr>
<tr class="RatedQuest">
<td class="Selector">
<abbr title>7</abbr>
<abbr title>1</abbr>
</td>
</tr>
</table>
したがって、必要な要素だけを取得するには、ratedQuest = ratedSelection [i] .getElementsByClassName( 'RatedQuest')などのようにします。 – SethWhite
実際には、それは=より小さいページで試してみて、 'console.log'ステートメントを入れて正しい要素を選択していることを確認してください。 – slezica
それはそれを説明しています。そのコードを実行するのに80秒かかる...私は助けてくれてありがとう! – juice