-1

我希望浏览器能够以绿色突出显示问题的正确答案。
我找到了一个似乎是正确想法的答案(如何使用 Greasemonkey 自动选择特定的单选按钮?)但我不知道足够的 javascript 来使用它。

我的 HTML 代码显示在这个小提琴中。

所需的输出示例应如下所示:

在此处输入图像描述

我如何使其他答案适应我的情况?

4

1 回答 1

0

var questionTxt =var ansForThisQ =必须适应目标页面的特定 HTML。

同样,ansForThisQ.each (...循环内的代码也必须进行裁剪。

鉴于您的示例 HTML 具有以下结构:

<div class="soru-content">
    <div class="point" style="margin-right:0px">
        <span><img src="IMG_URL"/></span>
    </div>
    <div class="soru">
        <p>How many countries will participate in the games?</p>
        <ul>
            <li><a href="ANS_URL1"><span>12</span></a></li>
            <li><a href="ANS_URL2"><span>204</span></a></li>
            <li><a href="ANS_URL3"><span>552</span></a></li>
            <li><a href="ANS_URL4"><span>715</span></a></li>
        </ul>
    </div>
</div>

那么改编后的脚本代码将是:

var answerKey   = [
      { q: "How many countries will participate in the games?", a: "204" }
    , { q: "when do olympics start in london", a: "July 27" }
    // etc.
];

//--- Loop through the question(s) on the page and answer then if possible.
var questionTxt = $("div.soru-content div.soru p");

questionTxt.each ( function () {
    var bFoundAnswer    = false;
    var answerTxt       = getAnswer (this.textContent);
    if (answerTxt) {
        //--- We have the answer text, now find the matching radio button and select it.
        var ansForThisQ     = $(this).parent ().find ("ul a span");

        ansForThisQ.each ( function () {
            var zRegExp     = new RegExp (answerTxt, 'i');
            if (zRegExp.test (this.textContent) ) {
                bFoundAnswer    = true;
                $(this).css     ("background", "lime");
                return false;   // End loop
            }
        } );
    }
    else {
        alert ("I don't know how to answer: '" + this.textContent + "'");
        $(this).css ("background", "pink");
    }
    if ( answerTxt  &&  ! bFoundAnswer) {
        alert ("The page does not have the specified answer for the question: '" + this.textContent + "'");
        $(this).css ("background", "pink");
    }
} );

function getAnswer (questionText) {
    for (var J = answerKey.length - 1;  J >= 0;  --J) {
        var zRegExp = new RegExp (answerKey[J].q, 'i');

        if (zRegExp.test (questionText) )
            return answerKey[J].a;
    }
    return null;
}


请参阅更新的 Fiddle

更多关于 jQuery 选择器的信息可以在这部分文档中找到。

于 2012-07-07T02:05:06.050 回答