我遇到了一些麻煩,我認爲應該是jQuery中的一個簡單的兄弟選擇器。爲什麼這個「這個+兄弟姐妹」的呼叫失敗?
該問題不會生成錯誤消息,當然,它只是無法正確選擇。內部文件(就緒)()函數,我有以下簡單的代碼先隱藏所有的彈出窗口,然後等待一個人點擊圖像將顯示同級彈出:
//hide all the charm pop ups
$(".charm_pop").hide();
$(".charm > img").click(function() {
$("this + .charm_pop").show();
})
我的HTML正在由一個Django for
迴路中產生,所以會有這個簡單的圖像/彈出組合標記的多次迭代:
{% for ch in charms %}
<div class="charm">
<img src="{{ MEDIA_URL }}images/charms/{{ ch.image }}" alt="{{ ch.name }}" />
<div class="charm_pop">
<p id="charm_name">{{ ch.name }}</p>
<p id="charm_desc">{{ ch.description }}</p>
<p id="charm_price">${{ ch.price }}</p>
<form method="post" action="." class="cart">{% csrf_token %}
<p>**some inputs and what not</p>
</form>
</div>
</div>
{% endfor %}
正如你所看到的,我只是等待圖像被點擊,而當它我選擇它的兄弟姐妹,並顯示相應的彈出窗口。然而,當我點擊一張圖片時,沒有任何反應。如果我將$("this + .charm_pop").show();
替換爲$(".charm_pop").show();
,它確實會顯示所有彈出窗口,所以點擊功能正在工作,選擇器只不過如此。
我誤解了this
在這方面的工作原理嗎?
'this'是一個對象,但你直接在字符串中使用它,所以反而,你的選擇是尋找一個標籤,如' ' –
2013-04-09 15:25:33
所以這:'$(this +「+ .charm_pop」)。show();'應該工作,否? – fildred13 2013-04-09 15:27:35
否,那麼它會查找'<[object object]> [object object]>' – 2013-04-09 15:28:05