jQuery append() 不会附加到我的元素

jQuery append() won't append to my element

提问人:Jeff 提问时间:3/5/2015 更新时间:3/5/2015 访问量:303

问:

由于某种原因,jQuery append() 不适用于我下面的任何代码示例。你明白我做错了什么吗?我正在尝试禁用提交按钮并附加一些显示“正在处理...”的文本。

示例代码 1:

$( "input[type='submit']" ).click( function()
{
    $( this ).attr( "disabled", "disabled" );
    $( this ).parents( "form" ).submit();
    $( this ).append( " Processing..." ); // no worky
    //$( "input[type='submit']" ).append( " Processing..." ); // no worky
});

示例代码 2:

$( "form" ).submit( function()
{
    //$( "#submit_button" ).append( " Processing..." ); // no worky
    $( this ).find( "input[type='submit']" ).prop( "disabled", "disabled" );
    $( "#submit_button" ).append( " Processing..." ); // no worky
});
jQuery查询

评论

0赞 Med.Amine.Touil 3/5/2015
您尝试将文本附加到 HTML 选项卡?
0赞 A. Wolff 3/5/2015
input 元素是 void 元素,它不能包含任何其他元素: w3.org/TR/html-markup/syntax.html#void-element
0赞 Yogesh Sharma 3/5/2015
请看下面的答案,你想像那样模仿,或者你的要求不同。请让我知道

答:

1赞 Jai 3/5/2015 #1

使用这个:

$(this).val(" Processing..."); // if <input type="submit"> 
$(this).text(" Processing..."); // if <button type='submit'> 
1赞 Spokey 3/5/2015 #2

我猜您正在尝试更改显示的文本..但是,由于它是输入,因此显示的文本是输入的值。

$("input[type='submit']").val(' Processing...'); // worky
$("#submit_button").val(' Processing...'); // worky
0赞 Pioter 3/5/2015 #3

试试这个 : $( this ).attr('value','Processing...');

评论

0赞 empiric 3/5/2015
你可以用代替.val().attr('value')
0赞 Yogesh Sharma 3/5/2015 #4

试试这个

$( "input[type='submit']" ).click( function()
{
    $(this).attr( "disabled", "disabled" );
    $(this).parents( "form" ).submit();
    $(this).val( " Processing..." ); // no worky
    //$( "input[type='submit']" ).append( " Processing..." ); // no worky
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<div class="prog"></div>

<input type="submit" />

0赞 I'm Geeker 3/5/2015 #5

试试这个

$("#submit_button").val(' Processing...'); 
2赞 Optimus 3/5/2015 #6

试试这个

$( this ).after( " Processing..." );

$( this ).append( " Processing..." );实际上像这样在输入标签中附加文本,它不会显示在前端,但如果你使用 after,它会在输入元素之后附加文本<input type="submit">processing</input>

评论

0赞 Jeff 3/5/2015
after()是我想要的。我没有意识到在输入中添加了元素。append()
0赞 Optimus 3/5/2015
@Jeff我;)犯了同样的错误
0赞 Shridhar 3/5/2015 #7

您在提交表单后附加文本,而不是在提交表单之前附加“处理”,如下所示

$( this ).append( " Processing..." ); 
$( this ).attr( "disabled", "disabled" );
$( this ).parents( "form" ).submit();

我认为您需要将按钮值显示为“正在处理”,因为您必须执行以下操作

$( this ).val( " Processing..." ); 
$( this ).attr( "disabled", "disabled" );
$( this ).parents( "form" ).submit();

将 append 替换为 val。

0赞 user4088854 3/5/2015 #8

用户 .after() 将尝试在当前jQuery中添加或更改节点

Check this JS Fiddle (https://jsfiddle.net/548acobq/1/)