我有两个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>
答案 0 :(得分:1)
ID不一样(并且不应该是),但是存在关系,即id的数字部分是相同的,因此您可以使用replace()
找出td
标识qstats<x>
(其中x
是here
元素的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()获取所选元素内的所有文本。
告诉我,如果我理解错误,如果是,请提供更多信息。
最好的问候。