このコードは、データIDの間で最も高い数値を選択し、ライムの背景を追加します。
このコードは、ページが最初に読み込まれたときにのみ動作しますが、ページが読み込まれると、data-idが変更されていて新しいデータIDを検索していませんでした。コードを再起動するための関数を追加しましたが、動作しません。コードをもう一度開始するには? (動的に更新されるページで)
変化するデータIDを見つけて石灰の背景を追加するにはどうすればよいですか?
私はTampermonkeyとGreasemonkeyで使用しています。
var i = 0, howManyTimes = 20;
function f() {
maxData = $(".answers li[data-id]").get().reduce((maxObj, crrntNode) => {
var node = $(crrntNode).data("id");
var idVal = parseInt(node.substr(node.length - 4), 16);
if (idVal > maxObj.value) {
maxObj.value = idVal;
maxObj.node = crrntNode;
}
return maxObj;
},
{ value: 0, node: null }
);
// $("body").append (`<p>The highest data-id value was ${maxData.value}.</p>`)
$(maxData.node).css("background", "lime").attr("id", "findvalue");
$(document).ready(function() { //When document has loaded
setTimeout(function() {
// document.getElementById("findvalue").setAttribute("id", "oldvalue");
$('li').css("background", "");
}, 100); //Two seconds will elapse and Code will execute.
});
var x = Math.floor((Math.random() * 500) + 1);
i++;
if (i < howManyTimes) {
setTimeout(f, x);
}
}
f();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="question-text" class="question sp-element border-radius active">What is favorite colour?</div>
<ul class="answers" id="answers">
<li data-id="58b9890062279282090ddc61" class="answer active">Purple</li>
<li data-id="58b9890062279282090ddc85" class="answer active">Blue</li>
<li data-id="58b9890062279282090ddc64" class="answer active">Yellow</li>
<li data-id="58b9890062279282090ddc66" class="answer active">Red</li>
</ul>
::[11195658](/ Q/11195658)、[14024120](/とにかく
は、ここに新しい/ MutationObserverを使用して答えを変更を検出する方法でありますq/14024120)、および[17385145](/ q/17385145)である。 –