Jquery 选择上一个元素
Jquery select previous element
我是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>
我正在尝试做的是突出显示*未找到文本,然后禁用前面的href,以便无法单击链接。
我开发了以下选择器:-
$('td').highlight('Not Found').each(function(){$(this).prev("a").removeAttr("href")});
突出显示选择器有效,但删除选择器不起作用。语法可能不正确,但任何指针都非常有用。
回答:- 这有效
$("td:contains('*Not Found*')").each(function(){$(this).parent().find('a').removeAttr("href")})
我个人建议:
// 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小提琴演示。
引用:
-
attr()
. -
closest()
. -
contents()
. -
filter()
. -
find()
. -
jQuery.trim()
. -
text()
. -
unwrap()
.
尝试$(this).prev().find("a").removeAttr("href")}
此外,删除链接可能不起作用。
尝试将 HREF 替换为 #
相关文章:
- Javascript获取上一个元素的内容
- 在数组中的一个元素上设置多个值
- 如何将一个函数附加到一个不存在的元素上
- 如何选择给定类的上一个元素
- 将鼠标悬停在Angular JS中的一个元素上,并将Class添加到另一个元素中
- jQuery悬停动画只在其他类似元素中的一个元素上
- 有什么方法可以在下一个元素上进行追加吗
- 如何激活下拉菜单:在一个元素上单击768px宽度下方,在另一个元素上将鼠标悬停在768px上方
- 将SVG元素拖动到另一个SVG元素上
- 试图把注意力集中在一个不重要的元素上是不是一种糟糕的做法;不存在
- 仅在一个元素上显示微调器($.mobile.showPageLoadingMsg())
- 获取上一个元素 jQuery 的内容
- 获取下一个或上一个隐藏元素的高度,以设置父元素的高度.jquery.
- jQuery val() 返回一个在 select/option 元素上带有 IE8 的数组
- jQuery网站的键盘快捷键,焦点使用左键和右键转到上一个或下一个元素
- 我在Phaser有一个项目.我想在画布上的元素上做一个用户图像编辑器
- 将鼠标悬停在一个元素上,可以将类添加到另一个元素中
- 如果上一个元素为空,则隐藏下一个元素
- 是否可以将一个元素还原为它's上一个位置,而不将该位置作为参数传递
- 使用JQuery ^^获取元素上一个同级的值