jQuery如果元素包含某些东西,那就做吧

时间:2011-10-06 14:24:04

标签: jquery if-statement contains

我无法让这个工作。如果建议的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") }  
});

2 个答案:

答案 0 :(得分:9)

因为即使找不到元素,它也会返回true。试试这个:

$(document).ready(function() {
    if ($("#v65-cart-shipping-details tr:eq(2) td:contains('OH')").length) {
      alert("Did Stuff") }  
});

答案 1 :(得分:0)

你必须要小心。如果此表在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');