2009-09-04 63 views
5

我正在看包含选择器的jQuery网站。如何使用jquery包含?

$("div:contains('John')").css("text-decoration", "underline"); 

我该如何做到这一点,因此它需要一个非硬编码值?我试图做这样的事情

$("div:contains(" + name + ")") 

但是这似乎并没有工作,很凌乱。我可能只是失去了一些支撑或东西,但有没有一种干净的方式,将工作?因为即使我在下次必须扩展时才能使用它,再次遇到同样的问题,因为有这么多的连接和东西。

回答

11

你错过了周围的参数报价。

$('div:contains("' + name + '")').css(...); 

我尝试总是使用单引号字符串分隔符,和双引号的实际报价在串写JS的时候。无论哪种方式的作品,但一致有助于阅读字符串=)

+0

个人而言,我更喜欢它的另一种方式,但一致性是关键。 +1 – 2009-09-04 23:35:09

+0

是的 - 无论哪种方式都有效,一致性是关键。我更喜欢单引号作为字符串分隔符,主要是因为我认为它使得代码看起来更“干净” - 对于每个字符串,我的屏幕上少了两个点...;)另一方面,如果要与其他语言保持一致性(C# ,例如)你可能想用双引号。 – 2009-09-04 23:37:57

+0

我喜欢在javascript中使用单引号,因为这样你就不必转义html属性。我必须承认,有时我会使用双引号(如果我看到它,我会更正它),因为它必须在C#和大多数其他语言中使用。 雅这就是我以为我忘了一些东西。没有比它更好的方法吗?他们应该像C#中的String.Format一样添加到jquery中,这会让事情变得更好。 – chobo2 2009-09-04 23:57:46

5

尝试$( “分区:包含( '” +姓名+ “')”)