如果两个id具有相同的值,则添加类

时间:2015-03-18 08:55:22

标签: javascript html

我有两个div,一个用于提问另一个用于答案。如果div标识ques0包含here<div id="ques0" class="showquestion here"></div>,则尊重父qstats0的{​​{1}}个tr的答案,添加highlight类。

HTML

<!--Question-->
    <div id="ques0" class="showquestion here"></div>
    <div id="ques1" class="hidequestion"></div>
    <div id="ques2" class="hidequestion">

<!--Answer-->
    <tr>
    <td valign="top">1</td>
    <td valign="top" id="qstatschoice0">A</td>
    <td id="qstats0">N</td>
    </tr>

    <tr>
    <td valign="top">2</td>
    <td valign="top" id="qstatschoice1">A</td>
    <td id="qstats1">N</td>
    </tr>

    <tr>
    <td valign="top">3</td>
    <td valign="top" id="qstatschoice2">A</td>
    <td id="qstats2">N</td>
    </tr>

我想要输出如下。

<!--answer-->
    <tr class="highlight">
    <td valign="top">1</td>
    <td valign="top" id="qstatschoice0">A</td>
    <td id="qstats0">N</td>
    </tr>

3 个答案:

答案 0 :(得分:1)

ID不一样(并且不应该是),但是存在关系,即id的数字部分是相同的,因此您可以使用replace()找出td标识qstats<x>(其中xhere元素的id的数字部分),然后找到它的tr祖先并突出显示它。

function highlight() {
    var $c = $('.showquestion'),
        //get the id of here element
        id = $c.attr('id');
    //find the tr to highlight
    $('#' + id.replace('ques', 'qstats')).closest('tr').addClass('highlight')
}

演示:Fiddle

答案 1 :(得分:0)

我不知道你在哪里使用jQuery ..

document.getElementById('current_question')
$("#current_question") // jquery way ;-)

尝试smthg

$("#an_id").addClass("blabla");
$("#an_id").removeClass("blabla");

顺便说一下,如果很多div具有相同的ID,我认为只有DOM中的最后一个才能匹配。

答案 2 :(得分:0)

首先:document.getElementById是干净的javascript,而不是jquery。 第二:尝试这样的事情:

var question = $('#ques0').text();
var answer = $('#qstats0').text();
if (question == answer) {
    answer.parent('tr').addClass('highlight');
}

一些信息:ids没有价值。它只是一个元素的识别者。 .text()获取所选元素内的所有文本。


告诉我,如果我理解错误,如果是,请提供更多信息。

最好的问候。