开发者

jQuery insertbefore

I have the following:

<开发者_JAVA技巧;table id="StateNames">
<tr>
<td><input name="StateName"></td>
</tr>
<tr><td>Wyoming</td></tr>
<tr><td>Wisconsin</td></tr>
<tr><td>West Virginia</td></tr>
</table>

I'd like to

$('input').change(function() {
   var StateName = $(this).val();
   insert <tr><td>StateName</td></tr> before Wyoming


I assume you want to add the row after the row where the input element is:

$('input').change(function() {
    var StateName = $(this).val();
    $(this).closest('tr').after('<tr><td>'+StateName+'</td></tr>');
});

If you explicitly need to insert it before the row that has Wyoming in it, you'd better identify that row somehow – an ID tag would be appropriate:

<tr id="wyoming"><td>Wyoming</td></tr>
<tr id="wisconsin"><td>Wisconsin</td></tr>
<tr id="west-wirginia"><td>West Virginia</td></tr>

 

$('input').change(function() {
    var StateName = $(this).val();
    // Insert before Wyoming:
    $('#wyoming').before('<tr><td>'+StateName+'</td></tr>');
});

You can also use the :contains() pseudo class if you don't want to name your rows (it would be faster that way):

$("tr:contains('Wyoming')").before('<tr><td>'+StateName+'</td></tr>');


Like this:

var newElem = $('<tr></tr>').append($('<td></td>').text(StateName));
$(this).closest('tr').after(newElem);

Or:

$('tr:contains(Wyoming)').before(newElem);
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜