【问题标题】:How to replace /update an array of objects with text box value within a check box check function - jquery如何在复选框检查函数中用文本框值替换/更新对象数组 - jquery
【发布时间】:2017-05-04 10:06:27
【问题描述】:

看看这个小提琴link

因此,假设您首先选择两行(通过单击复选框)并在文本框中添加一些文本,那么对象数组将有两个具有该属性的对象,但第二次他从这两行中选择了一行并且取消选择另一个并在文本框中给出一些值,我们必须使用该数组中的对象更新对象,目前它正在添加另一个对象

另外,如果他选择了数组中不存在company 的任何其他行,则应将其添加为另一个对象。

每个被检查的函数怎么写?

HTML:

<table>
<tr>
    <th>checkbox</th>
    <th>Company</th>
    <th>Contact</th>
    <th>Country</th>
</tr>
<tr>
    <td><input name="eachRow" type="checkbox" /> </td>
    <td>Alfreds </td>
    <td>Maria </td>
    <td>Germany</td>
</tr>
<tr>
    <td><input name="eachRow" type="checkbox" /> </td>
    <td>Centro </td>
    <td>Francisco </td>
    <td>Mexico</td>
</tr>
<tr>
    <td><input name="eachRow" type="checkbox" /> </td>
    <td>Ernst </td>
    <td>Roland </td>
    <td>Austria</td>
</tr>
<tr>
    <td><input name="eachRow" type="checkbox" /> </td>
    <td>Island </td>
    <td>Helen </td>
    <td>UK</td>
</tr>
<tr>
    <td><input name="eachRow" type="checkbox" /> </td>
    <td>Laughing  </td>
    <td>Yoshi </td>
    <td>Canada</td>
</tr>
<tr>
    <td><input name="eachRow" type="checkbox" /> </td>
    <td>Magazzini </td>
    <td>Giovanni </td>
    <td>Italy</td>
</tr>



CSS:

table {
    font-family: arial, sans-serif;
    border-collapse: collapse;
    width: 100%;
}

td, th {
    border: 1px solid #dddddd;
    text-align: left;
    padding: 8px;
}

tr:nth-child(even) {
    background-color: #dddddd;
}

jquery:

   var selectedRows = [];
    function getdetails() {
        var modifier = $('#txtBox').val();
        $.each($("input[name='eachRow']:checked").parents("tr"), function () {
            selectedRows.push({
                company: $(this).find('td:eq(1)').text(),
                contact: modifier
            });
            console.log(selectedRows);
        });
    }

【问题讨论】:

    标签: javascript jquery html css arrays


    【解决方案1】:

    代码完全按照预期进行,每次单击按钮时,该方法都会将所有选中的对象推送到数组中。如果你这样做:

    function getdetails() {
        var selectedRows = [];
        var modifier = $('#txtBox').val();
        $.each($("input[name='eachRow']:checked").parents("tr"), function () {
            selectedRows.push({
                company: $(this).find('td:eq(1)').text(),
                contact: modifier
            });
        });
        console.log(selectedRows);
    }
    

    (在函数中添加选定的行初始化)你会得到你想要的:每次都有一个新的计算。如果您想要的是在每次单击按钮时更新元素,那么您需要不同的方法

    【讨论】:

      猜你喜欢
      • 2017-01-10
      • 2018-08-08
      • 1970-01-01
      • 2016-10-22
      • 2016-07-08
      • 2018-12-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-12
      相关资源
      最近更新 更多