【问题标题】:JQuery - How to get specified row containg unique element by javascript/jqueryJQuery - 如何通过 javascript/jquery 获取特定行包含唯一元素
【发布时间】:2014-03-26 15:58:15
【问题描述】:

HTML 结构如下所述。 如果我们将“230”(行中的唯一标识符)传递给函数,我想要一个提取整行的 JScript 或 JQuery。

它应该在具有唯一 id - 230 的 HTML 标记中搜索并考虑该行并单击“深红色”

<tbody id="avlForm:tnbts:tb" class="rf-dt-b">
  <tr id="avlForm:tnbts:3" class="rf-dt-r">
    <td id="avlForm:tnbts:3:j_idt152" class="rf-dt-c">230</td>
    <td id="avlForm:tnbts:3:j_idt156" class="rf-dt-c">Red</td>
    <td id="avlForm:tnbts:3:j_idt202" class="rf-dt-c">
      <a onclick="alert('Light Red')">Light Red</a> 
      <a onclick="alert('Dark Red')">Dark Red</a> 
      <a onclick="alert('Reddish')">Reddish</a> 
    </td>
  </tr>

  <tr id="avlForm:tnbts:8" class="rf-dt-r">
    <td id="avlForm:tnbts:8:j_idt152" class="rf-dt-c">150</td>
    <td id="avlForm:tnbts:8:j_idt156" class="rf-dt-c">BLUE</td>
    <td id="avlForm:tnbts:8:j_idt202" class="rf-dt-c">
      <a onclick="alert('Night BLUE')">Night BLUE</a> 
      <a onclick="alert('Dark BLUE')">Dark BLUE</a> 
      <a onclick="alert('Light BLUE')">Light BLUE</a>                 
    </td>
  </tr>
</tbody>

【问题讨论】:

  • 你一定尝试过,发布代码
  • 我没有看到 id=230 但 td 元素的值

标签: javascript jquery html tablerow


【解决方案1】:

首先,将 id 添加到带有警报的链接。然后循环所有td行并触发点击:

<a onclick="alert('Dark BLUE')" id="dark-blue">Dark BLUE</a>

$.each("#avlForm:tnbts:tb td", function(){
    if($(this).text() == "230"){
        $('#dark-blue').trigger('click');
    }
})

【讨论】:

  • 嗨,这将是一个解决方案,不幸的是,如果有很多行和列,因为您可能会冻结浏览器(迭代次数过多)
  • @KevinLucich 将循环与 setTimout(/*fonction_to_loop*/, 0) 结合起来
  • @KevinLucich 或者,由于您的文本将是唯一的,您可以使用该文本创建一些自定义属性,然后通过该属性搜索而不循环。
【解决方案2】:

如果您已经有一个唯一值,您可以将 id 行设置为“row#”(其中 # 是唯一编号)。在选择具有 id "row_230" 的行之后,您可以使用:

$("#row_230")  //  to select a row
$("#row_230").click()  //  to trigger the click event

问候, 凯文

【讨论】:

    【解决方案3】:

    创建一个选择器来查找你的结束 id,然后测试它的 html 是一个标签,直到你找到你想要的文本并触发它的点击。

    var wantedID = 230,
        target = $('[id$="idt'+wantedID+'"]');
    
    $('a', target).each(function () {
        var html = $(this).html();
        if (html == 'Dark Red') $(this).trigger('click');
    })
    

    【讨论】:

    • 为什么是-1?我的反应不是很好吗,我创建一个解决方案,而不涉及他的元素,不是很好吗?
    • 哦,我明白了,我错误地解释了该代码的 id 位置,我很抱歉。
    猜你喜欢
    • 2012-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-30
    • 2011-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多