【问题标题】:Add class if two id has same value如果两个 id 具有相同的值,则添加类
【发布时间】:2015-03-18 08:55:22
【问题描述】:

我有两个 div,一个用于提问,另一个用于回答。如果 div id ques0here<div id="ques0" class="showquestion here"></div>,则尊重父 tr 的答案 id qstats0 添加类 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>

【问题讨论】:

  • 提示:你的 mainqus 和 popqus 变量包含的是字符串,而不是 id。 (而且它们永远不会相等,因为一个以“ques”开头,另一个以“qstat”开头)
  • 那不是 jquery :)
  • 我猜他的意思是 id 末尾的数字。你必须解析它。
  • 问题值可能有更多值。我必须检查情况。如果特定问题有 '.here' 类,我应该从答案中找到相同的 ques 值并突出显示它。

标签: javascript html


【解决方案1】:

id 不一样(而且不应该),但存在关系,即 id 的数字部分相同,因此您可以使用 replace() 找出 ID 为 @987654325 的 td @(其中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

【讨论】:

  • 谢谢。它在演示中工作。但在现场我错过了一些东西。
  • 如果 '.here' 更改为另一个 div,我如何自动删除 '.highlight'。
  • @Azzah 你必须手动完成.. 即在更改类时再次调用 highlight 方法..
【解决方案2】:

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

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

试一试

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

顺便说一句,如果许多 div 具有相同的 ID,我认为只有 DOM 中的最后一个会匹配。

【讨论】:

  • 问题值有更多值。我必须检查情况。如果问题有“.here”类,我应该找到相同的问题值并突出显示
【解决方案3】:

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

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

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


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

最好的问候。

【讨论】:

  • @Papsoft。问题值具有更多值。我必须检查情况。如果问题有“.here”类,我应该找到相同的问题值并突出显示。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-06
  • 2022-08-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多