jQuery如果元素包含一些东西,做一些事情
Posted
技术标签:
【中文标题】jQuery如果元素包含一些东西,做一些事情【英文标题】:jQuery if element contains something, do stuff 【发布时间】:2011-12-02 07:23:56 【问题描述】:我无法让它工作。如果提议的td
包含“OH”,我只想显示一个警报以用于测试目的。
<table id="v65-cart-shipping-details">
<tr>..</tr>
<tr>..</tr>
<tr>
<td>United States, OH 43112</td>
<tr>
</table>
无论里面有什么(即美国,MI 48187),警报仍然会弹出,我错过了什么?
$(document).ready(function()
if ($("#v65-cart-shipping-details tr:eq(2) td:contains('OH')"))
alert("Did Stuff")
);
【问题讨论】:
【参考方案1】:因为即使没有找到元素它也会返回 true。试试这个:
$(document).ready(function()
if ($("#v65-cart-shipping-details tr:eq(2) td:contains('OH')").length)
alert("Did Stuff")
);
【讨论】:
哇,我一直盯着我的代码很久了,我可以发誓我增加了长度,谢谢你的第二双眼睛! 好吧,它不会真正返回undefined
,它只是返回一个空数组,计算结果为true
,你的解决方案确实解决了这个问题,所以+1【参考方案2】:
你必须在这里小心。如果该表在 html 中很大,则可能会导致浏览器崩溃(阅读:IE8-)。如果您正在生成 html,那么像这样格式化地址单元格会更快:
<tr class="address" data-state="OH" data-zip="43112" ... >
<td>United States, OH 43112</td>
<tr>
然后你就可以轻松选择了:
if( $("#v65-cart-shipping-details tr.address").is('[data-state="OH"]') )
alert('mom');
【讨论】:
以上是关于jQuery如果元素包含一些东西,做一些事情的主要内容,如果未能解决你的问题,请参考以下文章
jQuery - 检查标签的内容是不是等于 sometext 然后做一些事情
javascript 当DOM改变时,jQuery会做一些事情
如何使用 python 在 <div> 元素内写一些东西? [关闭]