按钮不在表行内工作

时间:2017-05-22 14:19:36

标签: javascript jquery html

我有一个像这样的HTML。在这个html中,tr的数量不确定。它可以是1或1000.每行都有一个名称为“apply”的按钮。我有一个jquery来处理单击操作,但在这种情况下,jquery只识别第一行的按钮。但我不知道该怎么做。

<tr id="jobs" th:each="job : ${job}">

                    <p id="jobID" th:text="${job.jobId}" style="display: none"></p>
                    <div class="col-md-3" id="JobTitle">
                        <span class="label label-default">Job Title</span>
                        <td th:text="${job.jobTitle}" />
                    </div>

                    <div class="col-md-3" id="jobDescription">
                        <span class="label label-primary">Job Description</span>
                        <td th:text="${job.jobDescription}" />
                    </div>

                    <div class="col-md-3" id="numberOfPersonToHire">
                        <span class="label label-success">Number Of Candidates</span>
                        <td th:text="${job.numberOfPersonToHire}" />
                    </div>

                    <div class="col-md-2" id="lastApplicationDate">
                        <span class="label label-info">Last Date</span>
                        <td th:text="${job.lastApplicationDate}" />
                    </div>

                    <button id="apply" type="submit" class="btn btn-xs"aria-label="Left Align">
                        <img th:src="@{/images/apply.png}" height="20" width="auto" />
                        Apply
                    </button>
                </tr>

JS

$("#apply").click(function(e){
        e.preventDefault();
        e.stopPropagation();
        debugger        
        var jobId = $('#jobID').text();
        document.location.href = "/admin";
    });

1 个答案:

答案 0 :(得分:1)

id(使用#声明)是唯一元素,不能多次使用。 JavaScript标识具有该特定id的第一个元素,之后不再继续。您可能想要考虑使用类:

...
<button class="apply" type="submit" class="btn btn-xs"aria-label="Left Align">
    <img th:src="@{/images/apply.png}" height="20" width="auto" />
    Apply
</button>
...

然后使用“apply”类迭代每个元素,假设您使用的是JQuery:

$('.apply').each(function() {
    ...
});

同样的事情适用于#jobId,它不能多次使用,因此您无法在每个循环中使用您的赋值。您还可以在for循环中包含一个计数器,您可以将其附加到ID,这样您最终会得到<button id="apply-1">...或类似的东西。但是,您必须使用选择器查找您拥有的每个<button>元素的每个<tr>子项。