2011-04-08 69 views
1

我需要根据它包含的文本向h2添加“标识”。我有什么不工作。根据它包含的文本将标识添加到标记

开始这样

<h2>Revision 3</h2> 

脚本运行

$('h2:contains(" Revision 3 ")').replaceWith("<h2 id="rev3">Revision 3</h2>"); 

结束这样

<h2 id="rev3">Revision 3</h2> 
+2

难道我读题做错什么,因为据我让你得到你的要求在问题 – arma 2011-04-08 21:42:33

回答

1

不能使用字符串中引用的字符串字符串分隔符...所以你不能使用"里面用"分隔的字符串,但你可能我们在由"定界的字符串内的e ')。例如:

$('h2:contains(" Revision 3 ")').replaceWith("<h2 id='rev3'>Revision 3</h2>"); 

应该工作。此外,在空间的开始和结束,字符串的应除去,因为它们在字符串中不是你要找的:

$('h2:contains("Revision 3")').replaceWith("<h2 id='rev3'>Revision 3</h2>"); 

最后,岂不是更容易使用是这样的:

$('h2:contains("Revision 3")').attr('id','rev3'); 

假设一个id必须独特的文档这或许也是值得的选择限制为只有一个元素中:

$('h2:contains("Revision 3")').eq(0).attr('id','rev3'); 
+0

真棒谢谢你!感谢你向我解释我在第一个剧本中做了什么错误。是的,你的方式非常简单,我对jquery很陌生,我试图让它太难。真的再次感谢。 – Ashlee 2011-04-08 21:50:48

+0

@Ashlee,绝对受欢迎;很高兴能对你有所帮助:) – 2011-04-08 21:51:42

+0

@Ashlee顺便说一句,如果这个或者其他答案帮助你解决了你的问题,请考虑接受(点击旁边的'✓')对你最有帮助的答案,并在适当情况下进行投票(点击“▲”)回答和/或其他人。 – 2011-04-08 22:04:01

1

我想在修订版3的开始和结束的提取物空间创建一个问题。

试试这个:

$('h2:contains("Revision 3")').replaceWith("<h2 id="rev3">Revision 3</h2>"); 
2
$('h2').each(function() 
{ 
    if ($(this).text() == "Revision 3") 
     $(this).attr('id','rev3'); 
} 

遍历所有H2标签,如果标签文本Revision 3它的ID设置为rev3

1
$('h2:contains("Revision 3")').attr("id", "rev3"); 
2

或者,如果你只是想ID添加到它,你可能需要使用速度更快,如:

$('h2:contains("Revision 3")').attr('id','rev3'); 
+0

我将如何去探索更动态的东西,它会检测文本并从文本中添加ID – arkjoseph 2012-01-09 22:01:04

相关问题