问题描述
|
我有4个
<SPAN>
,其中3个在动态gridview中是隐藏的(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
和written5ѭ写过它,但结果是undefined
。
解决方法
根据海报的要求,并感谢V4Vendetta
获取无文本内容的代码是:
var content = span.innerText || span.textContent;
之所以可以这样,是因为(通常)不支持ѭ5those的浏览器确实支持textContent
。 quirksmode有更多细节。
, 使用JQuery,将获得以下值:
$(function() {
$(\'tr span\').each(function() {
alert($(this).text());
});
});
这是一个例子
, 采用:
var str = document.getElementById(\'span1\').value;
, 某些浏览器(Firefox)不支持innerText
,在这种情况下会返回undefined阅读此内容
另一种方法是检查textContent
,但在IE中不支持
因此,我建议您尝试使用innerHTML
而不是innerHtml
(您必须小心这种情况),这应该在所有浏览器中都有效。
, 给您的跨度属性“ 16”,并在CodeBehind中像Span1.InnerHtml,Span2.InnerHtml,Span3.InnerHtml等访问它们。或者,考虑到您从GridView中获取值,((HtmlGenericControl)grid.rows[x].cells[y].FindControl(\"yourSpanId\")).InnerHtml
。
, <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>