0

したがって、複数の行を持つテーブルがあります。各行の最初のTDには、ラインナップと呼ばれるカスタム属性タグが含まれています。元:

<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の場合を除いて、これはうまく機能します。ID463の行も選択されます。基本的に文字列を検索しているので、なぜこれを行っているのか理解できます。463が実際には63ではないことを彼は知りません。

だから私の質問:

  • データをhtml/jsに保存するためのより良い方法はありますか?
  • 正規表現(使用方法がわかりません)を使用して、たとえば463ではなく63のみを検出するようにできますか?

編集:

これは私の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","")
});

playingIdを取得するための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 に答える