« windows+safariでのswf | ホーム | ページ内にswfがある and urlに#がある場合のタイトル挙動 ie »
2011年8月22日
jQuery $(this).text()のie6、7
【はまり問題】
jQuery、拾ってきた.text()が実際のテキストと異なる
【詳細】
<ul id="selectUl">
<li>テキストA</li>
<li>テキストB</li>
</ul>
<table id="selectTable">
<tr>
<td>hogehoge</td>
<td>テキストA</td>
<td>hogehage</td>
</tr>
<tr>
<td>hogehoge2</td>
<td>テキストA</td>
<td>hogehage2</td>
</tr>
<tr>
<td>hogehoge</td>
<td>テキストB</td>
<td>hogehage</td>
</tr>
<tr>
<td>hogehoge2</td>
<td>テキストA</td>
<td>hogehage2</td>
</tr>
...
</table>
というようなhtml。
目的は、liクリックでtableに同じワードがある行だけ表示。
var clickText = $(this).text();
とliのテキスト内容を入れて
tr.each()で1行ずつtdのテキストを
selectText= $(this).text();
に代入する。
if(clickText == selectText){
で表示。
ie6、7のみ動かず。
すべてfalseになる。
【原因】
text();
に余計な文字が入る。おそらく改行コード。
clickText.length() が6。
selectText.length() が5。
そりゃ一致しない。
【回避方法】
clickText = jQuery.trim($(this).text());
トラックバック(0)
トラックバックURL: https://www.y-is.jp/mtadmin/mt-tb.cgi/37
コメントする