我通过ID名称匹配ASP.Net生成的元素,但是我有一些元素可以呈现为文本框或标签,具体取决于页面上下文.我需要弄清楚匹配是否是文本框或标签,以便知道是通过val()还是通过html()获取内容.
$("[id$=" + endOfIdToMatch + "]").each(function () { //determine whether $(this) is a textbox or label //do stuff });
我找到了一个不起作用的解决方案,只返回"undefined":
$("[id$=" + endOfIdToMatch + "]").each(function () { alert($(this).tagName); });
我错过了什么?
只是一个jQuery太多了:
$("[id$=" + endOfIdToMatch + "]").each(function () { alert(this.tagName); });
不使用each()就考虑这个解决方案:
var elements = $("[id$=" + endOfIdToMatch + "]"); var vals = elements.is("input").val(); var htmls = elements.is("label").html(); var contents = vals.concat(htmls);
看看文档是什么.
你也可以使用这样的东西:
if ($(this).is('input:checkbox'))
将"this"替换为您需要的任何实例,将"checkbox"替换为您需要的任何输入类型.
我第一次回答自己的问题.经过一些实验:
$("[id$=" + endOfIdToMatch + "]").each(function () { alert($(this).attr(tagName)); });
作品!