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会做一些事情

jQuery

如何使用 python 在 <div> 元素内写一些东西? [关闭]

jQuery 不会正确完成提交,并且在提交时会做一些意想不到的事情

jQuery悬停依赖于两个元素