使用.each()

时间:2018-02-16 03:10:31

标签: javascript jquery node.js ajax express

你好开发者, 我正在尝试获取变量' title'来自我的票务系统的node.js循环。我的目标是将此变量作为占位符,因此当用户尝试编辑故障单时,该项目将自动放入该字段中。我能够创建一个从循环中获取所有标题的每个循环,但是我很难弄清楚如何抓住特定的标题。任何帮助表示赞赏! 循环页面:

<td><input type="checkbox"></td>
<td class='thetitle'><%= data[i].title %></td>
<td><%= data[i].unitId %></td>
<td><%= data[i].priority %></td>
<td><%= data[i].assignedTo %></td>
<td><%= data[i].description %></td>
<td><%= data[i].date %></td>

底部代码

$('.btn-info').click(function(){
    $( ".thetitle" ).each(function( index ) {
        console.log( index + ": " + $( this ).text() );
        });
    });

此代码有效,并为我提供如下输出: console output

所以问题的根源是如何根据CURRENT项目获取其中一个变量。 我试图继承变量,但它嵌套在一个循环中。 2 当用户按下编辑时,它应该携带变量以自动填充表格 3

2 个答案:

答案 0 :(得分:2)

您已经在每个循环中单独访问每个项目。您只需在您打印到控制台的同一部分中使用if语句,如下所示:

$( ".thetitle" ).each(function( index ) {
    console.log( index + ": " + $( this ).text() );
    if($(this).text() == "example") {
        //this code fires when the title of the CURRENT item is "example"
    };
});

答案 1 :(得分:0)

您的问题是您使用类“theTitle”循环遍历所有td元素,但需要在编辑相关故障单时触发事件。 I.E.用户点击了这张票,所以只担心这张票。

似乎你想抓住输出的标题并以某种形式放置在某个地方。

而是尝试类似:

$('.theTitle').each(function(){
   var $ele = $(this);
   $ele.click(function(e){
    //grab title variable, do editing, etc.
    console.log($ele.text());
   });
});

您可能需要更新td单元格的css以确保触发click事件。

.theTitle{
  cursor: pointer;
}