2015-03-19 64 views
0

我在HTML中创建了一个表,当人从项目列表中选择一个项目时,该表会更新。我希望当表格单元格更新时,它应该只选取所选项目的两个单词,并且如果所选项目是三个单词,则第三个单词应该在单元格的下一行上打印。如何让一列表中的每行只有两个字在jQuery中?

这是从那里的项目被选中

<table> 
    <tr> 
     <td style="text-align:left;"><input type='checkbox' name='it's 2' value='Two Words'>Two words</input> 
     </td> 
     <td style="width:200px;"></td> 
     <td></td> 
     <td></td> 
     <td></td> 
    </tr> 
    <tr> 
     <td style="text-align:left;"> 
      <input type='checkbox' name='this is three' value='Three Words' >Three words Next line</input> 
     </td> 
     <td style="width:200px;"></td> 
     <td></td> 
     <td></td> 
     <td></td> 
    </tr> 
</table> 

这是更新HTML表格HTML表格...

<table border="1" class="table2"> 
    <tr> 
     <td>Name</td> 
     <td>Value</td> 
    </tr> 
    <tr> 
     <td class="text"></td> 
     <td class="value"></td> 
    </tr> 
</table> 
</div> 

我想首先的第二个元素表格被选中时打印在第二张桌子上,但在两行中,第一行将有“三个字”,第二行将在第二张桌子的同一单元格中具有“下一行”。 Pl帮助。

jQuery代码:

$('input[type="checkbox"]').click(function(){ 
    if($(this).is(":checked")){ 
     var x = $(this).val(); 
     $('.text').append(x + ' <br />').show(); 
     var z = $(this).attr('name'); 
     $('.value').append(z + ' <br />'); 
    } 
    else if($(this).is(":not(:checked)")){ 
     var x = $(this).val(); 
     var y = $('.text').text().replace(x, ''); 
     $('.text').text(y).show(); 
     $('.text').append('<br/>'); 
     var z = $(this).attr('name'); 
     var a = $('.value').text().replace(z, ''); 
     $('.value').text(a).show(); 
     $('.value').append(' <br/>'); 
    } 
}); 
+0

分享你已经尝试或设置一个的jsfiddle – mohamedrias 2015-03-19 05:24:07

+0

我都试过,但我的逻辑不适合我的代码.. pl帮助。 – 2015-03-19 05:37:44

回答

0

要拍摄前两个字:var theTwoWords = yourText.match(/([a-zA-Z]+\s+[a-zA-Z]+)/)[0];要获得这些之后接下来的两个:var theNextTwoWords = theTwoWords.substr(theTwoWords.length + 1);

相关问题