我遇到了一些麻烦,我认为应该是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