使用图像在div中切换div
我目前有以下代码:
$(document).ready(function () { $(function () { $('#toggleinput').click(function () { $('[id^=POPUP]').toggle() }); $(".img-swap").on('click', function () { if ($(this).attr("class") == "img-swap") { this.src = this.src.replace("_showall", "_hideall"); } else { this.src = this.src.replace("_hideall", "_showall") } $(this).toggleClass("on"); }); }); });
我有一个名为div id="input"
,其中有一个分类(从3-50 +)其他div,称为div id="POPUP{Some number}"
。
所以我有这个:
我想要做的是只切换“输入”div中的那些POPUP div。 将会有另一个叫做“响应”的div,它也会有POPUP div。 所以我想在两个具有不同父div的地方使用此代码。 现在,上面的代码切换所有 POPUP div而不仅仅是输入的那些。 我怎么做?
我是JQuery的新手,但我认为到目前为止它真的很棒!
编辑奇怪的是,这些似乎都没有奏效。 也许我错过了一些东西,或者我没有给你一切帮助解决这个问题(可能是后者)。 下面是我生成的输出中的html的一部分(我在单独的应用程序中执行此操作,因此您看到的一些代码可能会想知道为什么它甚至存在,但是由于设置,我无法真正改变它(并且不想花费每次更改时需要花费的时间进行批量修改))。
-
Logical Definition: This is the general definition of what the input type is in common terms.
Technical Definition: This is the technical definition of what the input type is; for example, it is the data stored in the X column of the Y table.
Required: Y/N
Input Information: varchar 32, etc.
应用程序在创建输出html文件时添加额外的
标记。 我无法阻止它,编辑它会花费更多的时间并且从长远来看会有问题。 基本上,具有merchantId
行将是可见的。 可以单击它以在下面的div(POPUP)中显示信息。 我想在顶部显示所有这些POPUP div,只要它们在input
div中。
编辑2我的错误。 我发现了错误,因为我没有将我的图像称为toggleinput
。 我现在有工作。
您可以使用children
方法。 例如,代替$('[id^=POPUP]').toggle()
,你可以做$("#input").children('div').toggle();
,假设那些是input
唯一的div。
如果不仅仅是popup div,你可以做$("#input").children('div[id^=POPUP]').toggle();
,但如果你不需要消除歧义,第一个是更清洁。
您可以在http://api.jquery.com/children/上查看其他示例
用$(’div #input> div [id ^ = POPUP]’)替换$('[id ^ = POPUP]’)。toggle()。toggle()
jsfiddle.net/zrpVm/
这将选择#input
中ID为POPUP
所有元素。 使用.children()
只会降低DOM中的一个级别。 http://api.jquery.com/find/
$('#input').find('[id^=POPUP]').toggle()
如果你知道你必须在#input
选择所有div
元素,那么用div
替换[id^=POPUP]
它就可以了。
你也不应该需要$(function (){ ... });
包装代码。 $(document).ready(function () { ... });
足够。
听起来你只需要对选择器进行一些讨论。 你可以嵌套选择器,这样你就可以做到这一点……
$("div#input div")
这将选择div中具有输入id的所有div。
或者,您可以使用……
$("div#input > div")
这将只选择输入div的直接子div(如果任何弹出div在其中有div)。