0

私はJqueryを初めて使用し、ここで返信を確認しましたが、質問に対する具体的な回答が見つかりません.

私は(ASP)生成されたテーブルを持っています。そのスニペットは次のとおりです。

<a href="javascript:__doPostBack(&#39;gv2&#39;,&#39;Select$15&#39;)"
style="color:White;">S</a></td><td style="font-size:XX-Small;">1104</td>
<td style="font-size:XX-Small;">320.20.0116.090</td>
<td style="font-size:XX-Small;">*Not Found*</td>

私がやろうとしているのは、* Not Foundテキストを強調表示してから、前の href を無効にして、リンクをクリックできないようにすることです。

私は次のセレクターを開発しました:-

$('td').highlight(' Not Found ').each(function(){$(this).prev("a").removeAttr("href")});

ハイライト セレクターは機能しますが、removeattr は機能しません。構文はおそらく正しくありませんが、ポインターは非常に役立ちます。

回答済み: - これは機能します

$("td:contains('*Not Found*')").each(function(){$(this).parent().find('a').removeAttr("href")})
4

2 に答える 2

1

私は個人的にお勧めします:

// selects all 'td' elements
$('td').filter(function(){
    // retains only those whose text is precisely '*Not Found*'
    return $.trim($(this).text()) == '*Not Found*';
// moves to the closest (ancestor) 'tr'
// finds the 'a' element within that 'tr' element
// sets the 'href' attribute to be equal to '#'
}).closest('tr').find('a').attr('href','#');

JS フィドルのデモ

hrefまたは、 を に設定するのではなく、コンテンツをアンラップして要素を#削除することもできます。a

$('td').filter(function(){
    return $.trim($(this).text()) == '*Not Found*';
}).closest('tr').find('a').contents().unwrap();

JS フィドルのデモ

参考文献:

于 2013-09-10T13:24:52.890 に答える
0

試す$(this).prev().find("a").removeAttr("href")}

また、リンクを削除しても機能しない場合があります。

href を次のように置き換えてみてください#

于 2013-09-10T09:23:05.557 に答える