我需要根据它包含的文本为h2添加一个“id”。我所拥有的不起作用。
像这样开始
<h2>Revision 3</h2>
脚本运行
$('h2:contains(" Revision 3 ")').replaceWith( "<h2 id="rev3">Revision 3</h2>");
像这样结束
<h2 id="rev3">Revision 3</h2>
答案 0 :(得分:2)
$('h2').each(function ()
{
if ($(this).text() == "Revision 3")
$(this).attr('id','rev3');
}
循环显示所有h2标记,如果标记文字为Revision 3
,则会将ID设置为rev3
答案 1 :(得分:2)
或者,如果您只想添加ID,可以使用更快的内容,如:
$('h2:contains("Revision 3")').attr('id','rev3');
答案 2 :(得分:1)
我认为修订版3开头和结尾的提取空间正在产生问题。
试试这个:
$('h2:contains("Revision 3")').replaceWith( "<h2 id="rev3">Revision 3</h2>");
答案 3 :(得分:1)
你不能使用字符串分隔符来引用字符串中的字符串...所以你不能在用"
分隔的字符串中使用 "
,但是你可以在用'
分隔的字符串中使用"
。例如:
$('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');
答案 4 :(得分:1)
$('h2:contains("Revision 3")').attr("id", "rev3");