0

所以我有一个多行的表。每行内容的第一个 TD 有一个自定义属性标签,称为 lineup。前任:

<td lineup="['463', '442', '200', '97', '238', '548', '166', '184', '353', '26', '573']">Some stuff</td> 

这实际上是我通过 Jinja2 传入 html 的一个列表。我认为这是存储这些数据的最佳解决方案。也许我错了,我刚刚开始编码。

现在我要做的是在阵容包含特定 ID 时选择行。

现在我正在这样做:

$("#xtable tbody td[lineup*='"+ID+"'']").parent()

哪个很好用,除非 ID 为 63,它还会选择 id 为 463 的行。我理解它为什么这样做,因为它基本上是在搜索字符串,他不知道 463 实际上不是 63。

所以我的问题:

  • 有没有更好的方法将数据存储在 html/js 中?
  • 例如,使用正则表达式(我不知道如何使用)可以让它只找到 63 而不是 463?

编辑:

这是我的 Jquery 函数:

$('#update li').hover(function(){
        playerId = $(this).find('span').attr("pid");
        $("#xtable tbody td[lineup*='"+playerId+"'']").parent().css("background-color","#d9edf7")
        },
        function(){
            $("#xtable tbody td[lineup*='"+playerId+"'']").parent().css("background-color","")
});

获取playedId的li元素示例

<li class="pushmsg" style=""><p><span rel="tooltip" class="player-name" pid="14" data-original-title="total point: 3">Arshavin</span> just got an assist</p></li>

谢谢!

4

3 回答 3

2

最好的办法是在您过滤的字符串中包含撇号。您应该在它前面加上一个反斜杠,因为您希望它被视为一个字符串。

$("#xtable tbody td[lineup*='\'"+ID+"\'']").parent()

我会建议您尽可能不要使用自定义属性,但如果您确实需要它们,请使用 data-* 属性。更多信息在这里这里。使用数据阵容,您的代码将如下所示:

$("#xtable tbody td[data-lineup*='\'"+ID+"\'']").parent()
于 2012-11-07T11:13:19.303 回答
1
$('#xtable tbody td[lineup*="\''+ID+'\'"]').parent()

在要匹配的属性子字符串中包含您的 ID 周围的单引号,但已转义。

另外:你因尴尬而获奖。

小提琴示例:http: //jsfiddle.net/GHmjr/

于 2012-11-07T11:06:12.937 回答
1

删除星号*

 $("#xtable tbody td[lineup='"+ID.toString()+"'']").parent()
于 2012-11-07T10:27:10.793 回答