0

如果我的 Json 对象返回 true,那么这就是我目前所拥有的,然后我将 class error_back 添加到#message 否则添加 class success_back。这可以正常工作,但现在我想添加一个按钮,所以我尝试了这个:

无效的代码

 $('#message').append((data.error === true) ? 
 '<input type='submit' name='submit' class='button' id='submit_btn' value='Go back' />' : '' ); 

正常工作:

 $('#message').removeClass().addClass((data.error === true) ? 'error_back' : 'success_back').text(data.msg);

添加按钮的正确方法是什么?

4

3 回答 3

4

如果您查看突出显示的代码,您会注意到它看起来很奇怪。您正在使用单引号来包装您的字符串,但您也在字符串中使用单引号

就个人而言,我尽量避免构造 HTML 字符串:

if (data.error) {
    $('<input />', {
        type: 'submit',
        name: 'submit',
        'class': 'button',  // `class` is a reserved keyword
        id: 'submit_btn',
        value: 'Go back'
    }).appendTo('#message');
}
于 2012-10-26T04:22:39.067 回答
3

您的代码中存在语法错误,您不应嵌套单引号。

$('#message').append( data.error ? '<input type="submit" name="submit" class="button" id="submit_btn" value="Go back" />' : '' ); 
于 2012-10-26T04:18:36.120 回答
1

这是无效的,因为引号 ..您正在使用Single Quote '来封装字符串并封装属性.. 所以它不会正确解释.. 为了避免使用Double Quotes "来修复它或需要转义单引号..

$('#message').append(data.error  ? 
 "<input type='submit' name='submit' 
              class='button' id='submit_btn' value='Go back' />" : " " );

\OR转义引号

$('#message').append(data.error ? 
     '<input type=\'submit\' name=\'submit\' 
                  class=\'button\' id=\'submit_btn\' value=\'Go back\' />' : ' ' );
于 2012-10-26T04:22:45.840 回答