我無法弄清楚如何壓縮此代碼以使其乾燥。它適用於不同的元素或重複代碼,但我想保持清潔。這是HTML:選擇一個選項後修改img兄弟
<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') + '">');
});
我要做到這一點,當我改變選擇,該分區的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
。
我傾向於在追蹤'$(this)'在這種情況下出現問題。嘗試在'replaceWith'之前存儲'$(this)'或'$(this)'的所需兄弟。 – astex 2013-05-02 00:47:58
我也是,我只是在學習jquery,並且沒有來自PHP的'echo'或'var_dump'。但是,即使存儲它,我也無法讓它變得更好。我不認爲傾銷所有我失敗的嘗試將會改善我的問題... – 2013-05-02 00:54:11
我可以解決它,最終改變我的觀點!我會寫它作爲答案。 – 2013-05-02 01:02:55