2012-03-02 103 views
0

我想在下面的HTML结构中使用Jquery将“Yes!Pick me”更改为“Picked”。我应该如何选择它?请摆脱一些光线,谢谢!如何使用Jquery选择此特定td元素的文本

我试过$( '#myDiv> TABLE> TR')方程(1),但不知道该怎么继续......

<div id="myDiv"> 
     <table> 

      <tr> 
      <td>Not me..</td> 

      <td>Not me..</td> 
      </tr> 

      <tr> 
      <td>Not me..</td> 

      <td>Yes! Pick me~ </td> 
      </tr> 

    </table> 

    </div> 
+0

这不是与您的其他曲estion:http://stackoverflow.com/questions/9437914/how-to-select-this-specific-td-element-and-its-text-with-jquery? – j08691 2012-03-02 20:55:00

+0

嗨j08691,它不是真的一样。这次我需要选择一些并不总是相同标签的首次出现。例如是第二次出现。​​也是第二次出现的类型...谢谢.. – eastboundr 2012-03-02 20:55:33

回答

1

使用:contains选择器。

$('#myDiv').find('td:contains(Yes! Pick me~)').text('Picked'); 

如果您不能包含的文本查询,做到像

$('#myDiv tr:eq1(1) td:last').text('Picked'); 
+0

哇,jAndy,$('#myDiv tr:eq1(1)td:last')。text('Picked'); 像魅力一样工作。除了在我的实际代码中的某些原因外,我想选择的第三个外观,但我必须使用tr:eq(3)而不是tr:eq(4)。奇怪......也许算作一个?无论如何,它现在解决了这个问题,谢谢 – eastboundr 2012-03-02 21:05:31

+0

@eastboundr:嗯,你需要找到一个非常独特的属性,你可以识别你想修改的'td'。基于此,你可以选择一个选择器 – jAndy 2012-03-02 21:08:26

+0

nvm,我发现我误读了一个存在于另一个td内的隐藏tr。所以代码工作得很好。再次感谢。 – eastboundr 2012-03-02 21:13:17

1

你可以使用:

$('td:contains("Yes! Pick me~ ")'); 

JS Fiddle demo

或者:

$('tr:eq(1) td:eq(1)'); 

JS Fiddle demo

参考文献:

+0

谢谢,第二个作品。因为我无法预测动态生成的文本。谢谢。 – eastboundr 2012-03-02 21:08:28

+0

不客气,我很高兴得到了帮助! =) – 2012-03-02 21:09:59

0

很简单,只需添加一个类你TD要改变这样的:

<td class="to-change">Yes! Pick me~</td> 

和jQuery

$("td.to-change").html("Picked!"); 
+0

对不起,我不能真正改变代码。这更像是一些预生成代码的后期修改。不管怎么说,多谢拉。 – eastboundr 2012-03-02 21:07:19