如何访问td的图像而不使用td中的id或class ..?

时间:2013-06-04 17:01:56

标签: javascript jquery html dom

我们有这样的HTML简报......

<table width="600">
<tr>
  <td>
     Text
  </td>
</tr>
<tr>
  <td>
     <img src="demo.jpg" width="200" height="200"/>
  </td>
</tr>
<tr>
  <td style="font:arial;">
     <img src="demo.jpg" width="200" height="200"/>
  </td>
</tr>
<tr>
  <td style="font:arial;">
   <a href="#">
     <img src="demo.jpg" width="200" height="200"/>
   </a>
  </td>
</tr>
</table>

我需要为有图像的td添加style="font-size:0%"。 我们没有在HTML中使用id或任何类。 那么如何使用javascript .. ??

谢谢!

6 个答案:

答案 0 :(得分:5)

使用.has()

var $tds = $('td').has('img').css('font-size',0);

答案 1 :(得分:4)

$('td:has(img)').css('font-size','0%');

var tds = document.getElementsByTagName('td');
for (var i=0; i<tds.length; i++) {
    if ( tds[i].getElementsByTagName('img').length )
         tds[i].style.fontSize = 0;
}

答案 2 :(得分:2)

我建议使用jQuery略有不同的方法:

// note: 0 doesn't require a unit
$('img').closest('td').css('font-size', '0');

答案 3 :(得分:1)

没有jQuery的天真方法

var table = document.getElementsByTagName("table"),
    tds = document.getElementsByTagName("td"),
    tdsWithImages = Array.prototype.slice.call(tds).filter(function (td) {
        return td.getElementsByTagName('img').length > 0
    });
    tdsWithImages.map(function (td) {
        td.style.fontSize = "0";
    });

答案 4 :(得分:0)

为什么不呢? $(“td img”)。each()

答案 5 :(得分:0)

$('img').closest('td').css('font-size','0%');