我是Jquery的新手,我已经看过这里的回复,但我找不到任何具体的答案。
我有一个(ASP)生成的表格,其片段是:
<a href="javascript:__doPostBack('gv2','Select$15')"
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")})
答案 0 :(得分: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','#');
或者,您可以通过展开其内容来删除href
元素,而不是将#
设置为a
:
$('td').filter(function(){
return $.trim($(this).text()) == '*Not Found*';
}).closest('tr').find('a').contents().unwrap();
参考文献:
答案 1 :(得分:0)
尝试$(this).prev().find("a").removeAttr("href")}
同时删除链接可能无效。
尝试用#