如果我有两个div,都使用id =“myDiv”
将$("#myDiv").fadeOut();
淡出两个div的出来吗? 还是会褪色只有第一/第二? 或者根本没有?
如何更改它淡出哪一个?
注:我知道的副本ID的是对标准,但我使用的fancybox模式弹出并复制了弹出窗口的内容网页上指定的内容。 如果有人知道解决的办法(也许我使用的fancybox错误)请让我知道。
如果我有两个div,都使用id =“myDiv”
将$("#myDiv").fadeOut();
淡出两个div的出来吗? 还是会褪色只有第一/第二? 或者根本没有?
如何更改它淡出哪一个?
注:我知道的副本ID的是对标准,但我使用的fancybox模式弹出并复制了弹出窗口的内容网页上指定的内容。 如果有人知道解决的办法(也许我使用的fancybox错误)请让我知道。
jQuery的查询的ID时恰好一个元素相匹配。 最多一个数组Element
的对象将返回$("#foo").get()
。 见jQuery的文档获取更多信息,或者自己尝试一下。
$(function() {
alert($("#foo").length);
});
元素ID应该是唯一的。 具有相同ID的多个div将是不正确的,不可预测的,蔑视ID的目的。 如果你这样做:
$('.myDiv').fadeOut();
这将淡化他们两个了,假设你给他们一个班myDiv和唯一ID(或没有)的。
“注:我知道的副本ID的是对标准”
那就不要去做。 你已经想通了两个问题。 它违反了标准,并与jQuery的(实际上经常DOM的)选择机制干扰。 有可能会在未来更多的问题。
很可能,你正在使用的fancybox错了,在这种情况下,我希望有人熟悉它可以帮助你。 更糟的是,如果脚本本身是有缺陷的,你不应该使用它。
由于$(“#myDiv”)将只与ID返回第一个div,你必须找到使用这种伎俩,ID的所有元素:
$('[id=myDiv]');
因此,对于你的情况,在淡出适用于所有这些div的:
$('[id=myDiv]').fadeOut();
如果你想确保你的页面没有这个ID两次,然后你可以这样做,删除多余的:
$('[id=myDiv]:gt(0)').remove();
你也可以去使用find途径()。 发现将返回所有的元素与ID,并且可以将范围限制在一个特定的父母,如果需要尝试类似$(document).find('#myDiv').fadeOut();
要么
$('.parentElement').find('#myDiv').fadeOut();
我遇到了同样的问题。 显然,当您从您想要打开的fancybox页面上的内容,它创建的原始内容的镜像股利。 在我的情况下,控制被包裹在一个div那的fancybox创建了一个名为“fancy_div”
我能选择的控制,并得到它通过使用选择以下格式值:
$( '#fancy_div [ID =的inputText]')VAL();
你可以控制的范围内的fancybox别处存在。 做的最好的事情就是看viewsource,但它的棘手。
去查看源代码,使用以下技术:将这个标签您的形式:获得价值打开表单,点击标签,打开警报窗口。
确保你的光标在网页内容(找到控制和点击)内。
右键点击了控制,并选择“查看源文件”。
div的一束存在,所以查找包含内容股利。
希望这可以帮助。
我最近有一个类似的问题。 我有通过Ajax负载显示不同内容的单页。 不存在触发服务器生成一个PDF图像的按钮。
我原来的解决方案是使用一类选择,它工作得很好,但造成的摩擦与其他开发。 在使用类作为标识符使代码丑陋的链接有这么多的班了。 所以,我使用的名称属性:
<a name="printButton"....
$('a[name="printButton"]').on('click',function(){....
工作只是花花公子!