0

我有一个充满链接的页面,它们是配对的。我想做的是,一旦我点击了一个问号(寻求帮助),前两对被选中,然后是下两对,依此类推。问题是链接是在页面上随机创建的。我有以下代码选择第一个链接及其对。

$(".main .container a:first").css("color", "#0c0");

var valid = $(".main .container a:first").attr("class").split(" ");
var links = $(".main .container a");

for (i = 0; i < links.length; i ++) {
    var attributes = $(links[i]).attr("class").split(" ");

    if (attributes[1] == valid[1]) {
        $(links[i]).eq(0).css("color", "#0c0");
    }
}

编辑:

$(".help a").on("click", function()
{
    var unchecked = $(".main .container a:not(.selected)");
    var valid = unchecked.eq(0).attr("class").split(" ");
    var links = $(".main .container a");

    unchecked.eq(0).addClass("selected");

    for (i = 0; i < links.length; i ++) {
        var attributes = $(links[i]).attr("class").split(" ");

        if (attributes[1] == valid[1]) {
            $(links[i]).eq(0).addClass("selected");
        }
    }
});
4

1 回答 1

0

看起来你可以通过向已经“选择”的元素添加一个 CSS 类来简单地管理它。

检查我在 JSFiddle 所做的这个简单测试:http: //jsfiddle.net/L4rUM/1/

// When you click the "?"
$('button#btnHelp').on('click', function(){

     // Gathers the list of ALL <a> elements that were not "selected" yet
     var uncheckeds = $('.main .container > a:not(.selected)');

     // If you have at least 2 available elements
     if(uncheckeds.size() > 1){
         // Adds the .selected CSS class to first 2 non-selected elements
         uncheckeds.eq(0).addClass('selected');
         uncheckeds.eq(1).addClass('selected');
     }
 });

您正在执行的 CSS 操作现在只需添加 CSS 类即可控制:

.selected { color: #0c0; }

我希望这有助于并解决您的问题:)

于 2013-09-11T19:32:01.330 回答