Jquery 迭代表单元格并在数组中插入数据

Jquery 迭代表单元格并在数组中插入数据,jquery,Jquery,我需要关于简单迭代的建议 我有几个.termeknav元素。其中一些是简单的文本(它们是元素),一些是元素。无论类型是什么,我都需要数组中的文本/值 这是我当前的代码: $('.termeknev').each(function () { if ($(this).val() === "") { termekek.push($(this).text()); } else { termekek.push($(this).val()); } })

我需要关于简单迭代的建议

我有几个
.termeknav
元素。其中一些是简单的文本(它们是
元素),一些是
元素。无论类型是什么,我都需要数组中的文本/值

这是我当前的代码:

$('.termeknev').each(function () {
    if ($(this).val() === "") {
        termekek.push($(this).text());
    } else {
        termekek.push($(this).val());
    }
});
但我觉得它不漂亮。有没有办法使它更干净或更简单?

因为
val()
只用于表单控件,我建议您测试元素的类型。
td
值将是
未定义的
,这将偏离当前逻辑

$('.termeknev').each(function () {
    if ($(this).is(':input') { /* pseudo selector will return any input, select, textarea etc */
        termekek.push($(this).val());
    } else {
        termekek.push($(this).text());
    }
}); 
由于
val()
仅用于表单控件,我建议您测试元素的类型。
td
值将是
未定义的
,这将偏离当前逻辑

$('.termeknev').each(function () {
    if ($(this).is(':input') { /* pseudo selector will return any input, select, textarea etc */
        termekek.push($(this).val());
    } else {
        termekek.push($(this).text());
    }
}); 
由于
val()
仅用于表单控件,我建议您测试元素的类型。
td
值将是
未定义的
,这将偏离当前逻辑

$('.termeknev').each(function () {
    if ($(this).is(':input') { /* pseudo selector will return any input, select, textarea etc */
        termekek.push($(this).val());
    } else {
        termekek.push($(this).text());
    }
}); 
由于
val()
仅用于表单控件,我建议您测试元素的类型。
td
值将是
未定义的
,这将偏离当前逻辑

$('.termeknev').each(function () {
    if ($(this).is(':input') { /* pseudo selector will return any input, select, textarea etc */
        termekek.push($(this).val());
    } else {
        termekek.push($(this).text());
    }
}); 

在each中,此变量将是一个DOM对象。使用
$。每个(idx,obj)
并在循环中使用
$(obj)
访问对象。这是最简洁的。您正尝试组合不同的接口-这样做时,您必须使用它们相应的接口。使用DOM方法this.value而不是$(this.val(),这样if条件将如下所示:如果在each中使用(this.value===“”),则this变量将是DOM对象。使用
$。每个(idx,obj)
并在循环中使用
$(obj)
访问对象。这是最简洁的。您正尝试组合不同的接口-这样做时,您必须使用它们相应的接口。使用DOM方法this.value而不是$(this.val(),这样if条件将如下所示:如果在each中使用(this.value===“”),则this变量将是DOM对象。使用
$。每个(idx,obj)
并在循环中使用
$(obj)
访问对象。这是最简洁的。您正尝试组合不同的接口-这样做时,您必须使用它们相应的接口。使用DOM方法this.value而不是$(this.val(),这样if条件将如下所示:如果在each中使用(this.value===“”),则this变量将是DOM对象。使用
$。每个(idx,obj)
并在循环中使用
$(obj)
访问对象。这是最简洁的。您正在尝试组合不同的接口-进行组合时必须使用它们相应的接口。使用DOM方法this.value而不是$(this.val(),这样if条件将如下所示:if(this.value==“”)