2

正如标题含糊不清的那样,我在使用选择器和元素将图像添加到警报消息集中时遇到问题?不太热衷于命名法,但这是我到目前为止所得到的:

function sendalert(alert)
{
    var img;
    img = document.createElement('img');
    img.scr = 'ico/sign_warning.gif';
    img.height = 16;
    img.width = 16;

    $('#alert').text(alert).slideDown('500', function() {
    $(this).delay(5000).slideUp('500')});
}

基本上,我的页面顶部有一个 div,它 .slideDown 并将消息输入显示到函数 ($alert) 中。但是,由于我必须在我的标题中有向下滑动的 div,并且这个功能更向下 - 我必须使用 .text 来设置 div 输出。

纯文本输出目前工作正常(经过几个小时的反复试验)。我现在要做的是在错误文本前添加一个小错误图标。

我很难找到 .whatever 元素?但是从列表中我发现只有 .add 和 .load 对我很重要——我都试过了,但它们都不起作用。下面是我对 .add 的尝试(基本上对 .load 使用了相同的概念)

function sendalert(alert)
{
    var img;
    img = document.createElement('img');
    img.scr = 'ico/sign_warning.gif';
    img.height = 16;
    img.width = 16;

    $('#alert').add(img).text(alert).slideDown('500', function() {
    $(this).delay(5000).slideUp('500')});
}

我感谢任何帮助,并希望我提供了足够的信息来传达我的问题,

谢谢!

编辑:陷入困境并修复

img.scr = '<img src="ico/sign_warning.gif" width="16" height="16"/>';

它应该是什么

img.scr = 'ico/sign_warning.gif';

无论如何,它并没有解决我的问题。

4

1 回答 1

2

你有几个问题。首先,.add()不是你要找的方法。您可能正在寻找.append(). 此外,当您设置.text()jQuery 对象时,它将覆盖任何其他内部标记(包括子元素)。因此,即使您切换到.append(),您仍然会遇到问题。

所以考虑到这一切,试试这个怎么样:

$('#alert').text("").append(img).append(text).slideDown('500', function() {
    $(this).delay(5000).slideUp('500');
});

关键是清除警报元素内的任何内容,然后附加图像,然后是警报文本。

可能会更好(并且更容易设置样式)是在警报元素内有一个固定的图标元素和一个固定的文本区域,然后明确设置它们。但这至少应该让你走上正轨。

于 2012-09-07T01:39:02.963 回答