更改 div 中所有 h2 元素的 innerhtml

Posted

技术标签:

【中文标题】更改 div 中所有 h2 元素的 innerhtml【英文标题】:Change innerhtml of all h2 elements within div 【发布时间】:2012-09-27 19:14:53 【问题描述】:

这可能是一个愚蠢的错误,但我似乎无法让它工作。 我正在尝试使用 id=variable id 的 div 更改所有 H2 元素的 innerhtml

var numberOfQuestions = $('.question').length;
  var id = "question"+(numberOfQuestions);
  clone.id=id;
  document.documentElement.getElementById(id).getElementsByTagName( "h2" ).innerhtml= "Question"+(numberOfQuestions);

我认为我在这里做错了:document.documentElement.getElementById(id).getElementsByTagName( "h2" ).innerhtml= "Question"+(numberOfQuestions); nrtire 脚本:

 <script type="text/javascript">

function copyAppendRow() 
  var question = document.getElementById("question");
  var clone=question.cloneNode(true);
  var numberOfQuestions = $('.question').length;
  var id = "question"+(numberOfQuestions);
  clone.id=id;
  var questiondiv = document.getElementById(id);
var h2s = questiondiv.getElementsByTagName("h2");
for(var h = 0; h < h2s.length; h++ ) 
  h2s[h].innerHTML = "Question"+(numberOfQuestions); 
  if($('#questionsuccess').css('display') == 'none')
  $('#questionsuccess').fadeIn('fast');
 $('#questionsuccess').fadeOut(4000);
  
  

</script>

【问题讨论】:

【参考方案1】:

你的意思是这样的:

var divEle = document.getElementById("yourDivId");
var h2s = divEle.getElementsByTagName("h2");
for(var h = 0; h < h2s.length; h++ ) 
  h2s[h].innerHTML = "Question"+(numberOfQuestions);

或 jQuery方式:

$("#"+yourDivId + " > h2").html("Question"+(numberOfQuestions));

【讨论】:

似乎是对的。但似乎不起作用。我已经添加了我的完整脚本,因此您可以查看他们是否有任何问题。谢谢。 哇哦。在某些时候,我删除了脚本的附加部分。你的完美。谢谢【参考方案2】:

我从您的第一行中看到您已经在使用 jQuery,所以让自己的生活变得轻松并使用它来完成这项任务。

$('#' + id + ' h2').html( 'Question ' + numberOfQuestions );

jQuery 选择器的工作方式与 CSS 选择器类似。因此,这行代码会找到以您的变量 id 作为其 id 的元素,并获取该元素中的所有 h2 标记。 .html 是一个设置元素内部 HTML 的 jQuery 方法。

【讨论】:

以上是关于更改 div 中所有 h2 元素的 innerhtml的主要内容,如果未能解决你的问题,请参考以下文章

悬停时更改 div 内 H2 的字体颜色

那些年我们用到的jquery选择器!!

在 div 上使用悬停来更改该 div 内的所有元素

使用 XPath 匹配除一个之外的所有元素和文本

将数组项附加到具有相应索引的 DOM 元素(jQuery)

如何更改特定类名的所有类名元素