在javascript中获取隐藏<span>的文本</span>

时间:2011-06-14 06:45:14

标签: javascript asp.net

我有4个<SPAN>,其中3个在动态网格视图中隐藏(display:none

<tr>
   <SPAN id="Span1">Name</SPAN>
   <SPAN id="Span2" style="display:none"></SPAN>
   Id1<SPAN id="Span3" style="display:none">Id2</SPAN>
   <SPAN id="Span3" style="display:none">Id3</SPAN>
</td>

我怎么能得到那些文字?我将该元素设置为[object HtmlSpanElement]。我用innerHtml&amp; innerText,但结果为undefined

6 个答案:

答案 0 :(得分:2)

根据海报的要求,并感谢V4Vendetta

获取无文本内容的代码是:

var content = span.innerText || span.textContent;

这是有效的,因为(通常)那些不支持innerText的浏览器支持textContentquirksmode has more detail

答案 1 :(得分:0)

使用JQuery,这将获得值:

$(function() {
   $('tr span').each(function() {
     alert($(this).text());
   });
});

这是example

答案 2 :(得分:0)

使用:

var str = document.getElementById('span1').value;

答案 3 :(得分:0)

某些浏览器(Firefox)不支持innerText,并且在这种情况下会返回undefined Read This

另一种方法是检查textContent,但在IE中不支持

所以我建议你尝试innerHTML而不是innerHtml(你必须小心),这应该适用于所有的浏览器。

答案 4 :(得分:0)

为您的跨度提供属性runat="server",并在CodeBehind中访问它们,如Span1.InnerHtml,Span2.InnerHtml,Span3.InnerHtml等。或者,考虑到从GridView获取值((HtmlGenericControl)grid.rows[x].cells[y].FindControl("yourSpanId")).InnerHtml

答案 5 :(得分:0)

<script language="javascript" type="text/javascript"> 
 function MyFunction(){
     var gridview = document.getElementById('ctl00_ContentPlaceHolder1_gvmanageclients'); 
            var rCount = gridview.rows.length;
            alert(gridview.rows.length);
            var rowIndex=1;

            for (rowIndex; rowIndex<=rCount-1; rowIndex++)
            {
                var rowElement = gridview.rows[rowIndex];
                Cell = gridview.rows[rowIndex].cells[0];
                FirstControl = Cell.childNodes[0];
                alert(FirstControl.innerHTML);  

             }

  }
 </script>