我无法弄清楚如何压缩此代码以使其干燥。它适用于不同的元素或重复代码时,但我想保持干净。这是html:
<div class = "face left">
<img src = "/images/faces/empty.jpg"><br>
<select>
<option value="empty">Select one</option>
<option value="ab18e97e6c64f8db588e95772daf51b4">Takeshi</option>
<option value="d27b579c196202648ba7c4b1904e8e20">Osuka</option>
</select>
</div>
<div class = "face right">
<img src = "/images/faces/empty.jpg"><br>
<select>
<option value="empty">Select one</option>
<option value="ab18e97e6c64f8db588e95772daf51b4">Takeshi</option>
<option value="d27b579c196202648ba7c4b1904e8e20">Osuka</option>
</select>
</div>
到目前为止我没有工作的jQuery:
$('.face').children('select').change(function()
{
$(this).
siblings('img').
replaceWith('<img src = "/ajax/faces/' + $(this).siblings('select option:selected').attr('value') + '">');
});
我想实现这一点,当我更改选择时,该 div 的 img 被替换为新的(使用从选择选项的值动态创建的 src)。如果我这样做(删除 ),我可以让它发挥作用$(this).siblings
:
$('.face').children('select').change(function()
{
$(this).
siblings('img').
replaceWith('<img src = "/ajax/faces/' + $('select option:selected').attr('value') + '">');
});
但是使用该代码我只能拥有一张“脸”,而我实际上想要两张。那么,我怎样才能修改我的 jquery 代码来替换它的兄弟<img>
而不影响其他的呢?第一个代码不起作用,因为它试图找到图像/ajax/faces/undefined
。