如何确定jQuery中匹配元素的元素类型?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (441)

我正在根据ID名称匹配ASP.NET生成的元素,但是我有一些元素可以根据页面上下文呈现为文本框或标签。我需要弄清楚匹配是与文本框还是标签匹配,以便知道是通过val()还是html()获取内容。

$("[id$=" + endOfIdToMatch + "]").each(function () {
    //determine whether $(this) is a textbox or label
    //do stuff
});

我找到了一个不起作用的解决方案,它只是返回“未定义的”:

$("[id$=" + endOfIdToMatch + "]").each(function () {
    alert($(this).tagName);
});

我遗漏了什么?

提问于
用户回答回答于

只是有一个jQuery太多了:

$("[id$=" + endOfIdToMatch + "]").each(function () {
    alert(this.tagName);
});
用户回答回答于

考虑这个解决方案而不使用每个():

var elements = $("[id$=" + endOfIdToMatch + "]");
var vals = elements.is("input").val();
var htmls = elements.is("label").html();
var contents = vals.concat(htmls);

扫码关注云+社区

领取腾讯云代金券