我有一个表,每个td元素都包含一个输入标记。我写了以下代码
var elements = $('#booklist .ISBN_number');
创建包含在这些输入标记中的所有isbn数字的数组。
我正在尝试编写一个jquery命令,将图像附加到这些输入标记的内容中。我写过
$(elements[index]).val().append("<img src = 'pics/green_checkmark.png'>");
哪个不起作用。我检查了$(元素[index])。val()确实有一个数字isbn值。为什么我不能追加它呢? (我不想将图像显示在输入标签的右侧)
答案 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>