jquery附加不正常

时间:2011-11-03 02:20:18

标签: jquery

我有一个表,每个td元素都包含一个输入标记。我写了以下代码

var elements = $('#booklist .ISBN_number');

创建包含在这些输入标记中的所有isbn数字的数组。

我正在尝试编写一个jquery命令,将图像附加到这些输入标记的内容中。我写过

$(elements[index]).val().append("<img src = 'pics/green_checkmark.png'>");

哪个不起作用。我检查了$(元素[index])。val()确实有一个数字isbn值。为什么我不能追加它呢? (我不想将图像显示在输入标签的右侧)

4 个答案:

答案 0 :(得分:1)

您无法在图片输入标记

中附加图片

您应该尝试after()并在输入后放置图像。

答案 1 :(得分:1)

jQuery val函数返回元素当前值的字符串。

如果要在输入标记之后附加图像,可以使用after函数。

elements.eq( index ).after( "<img src='pics/green_checkmark.png'>" );

答案 2 :(得分:0)

因为.val()返回一个字符串,而不是一个jquery对象。你必须做这样的事情:

$(elements[index]).val( $(elements[index]).val() + "<img src = 'pics/green_checkmark.png'>") );

但是,您无法在输入中添加图像。您必须在输入后添加它,然后使用css将其移动到输入上;类似的东西:

img { margin-left: -15px; }

答案 3 :(得分:0)

假设您的HTML看起来像这样:

<table id="booklist">
    <tr>
        <td>
            <input class="ISBN_number" />
        </td>
    </tr>
    <tr>
        <td>
            <input class="ISBN_number" />
        </td>
    </tr>
    ...
</table>

您需要做的是使用.after()方法,该方法会在选择器后附加值。

此外,如果您有一个选择多个对象的jQuery对象,则对该对象执行的任何方法都将应用于选择器命中的所有对象。

所以将代码更改为。

var elements = $('#booklist .ISBN_number');
elements.after("<img src = 'pics/green_checkmark.png'>");

这会给你html ala:

<table id="booklist">
    <tr>
        <td>
            <input class="ISBN_number" /><img src="pics/green_checkmark.png">
        </td>
    </tr>
    <tr>
        <td>
            <input class="ISBN_number" /><img src="pics/green_checkmark.png">
        </td>
    </tr>
    ...
</table>