jQuery -错误的技术或错误
jQuery - Wrong technic or a bug
我有一个HTML页面,我想根据jQuery手风琴的选定元素更改H3标记的文本。在这个链接有一个小的演示。
<div id="acc1" class="basic">
<h3><a href="#">aaa</a></h3>
<div></div>
<h3><a href="#">bbb</a></h3>
<div></div>
<h3><a href="#">ccc</a></h3>
<div></div>
</div>
<h3 class="ui-widget-header">xyz</h3>
$(document).ready(function () {
$("#acc1").accordion({
heightStyle: "fill",
active: false,
autoheight: false,
collapsible: true,
alwaysOpen: false,
activate: function (event, ui) {
var idx = $("#acc1").accordion("option", "active");
var txt = $("#acc1 > h3:nth-child(" + (idx + 1) + ") > a").text();
$("h3.ui-widget-header").text((idx + 1) + " ---> " + txt);
}
});
});
acc1在开始时被折叠,很快一个元素被单击,jQuery函数读取其文本并将其分配给H3标记。但只是第一次点击,页面加载后,工作良好。在此之后,只分配了错误的值。
我这样做是错误的还是jQuery有bug ?
使用的东西:jQuery v1.9.0, jQuery UI v1.9.2
问候,grafl
我的解决方案是:
$(document).ready(function () {
$("#acc1").accordion({
heightStyle: "fill",
active: false,
autoheight: false,
collapsible: true,
alwaysOpen: false,
activate: function (event, ui) {
}
});
$("h3").click(function(){
var txt = $(this).find('a').text();
$(".ui-widget-header").html(txt);
});
});
<<p> JSFIDDLE演示/strong> :nth-child
考虑所有兄弟,而不仅仅是匹配您所限定的标记的那些。因此,h3:nth-child(2)
(例如)意味着"h3
元素也是其父元素中的第二个子元素",而不是"其父元素中的第二个h3
元素"。
:eq
(它使用基于0的索引)或.eq
函数(它也这样做)。
改变这一行:
var txt = $("#acc1 > h3:nth-child(" + (idx + 1) + ") > a").text();
:
var txt = $("#acc1 > h3").eq(idx).children("a").text();
更新小提琴
或:
var txt = $("#acc1 > h3:eq(" + idx + ") > a").text();
更新小提琴
相关文章:
- Node.js v6.2.0类扩展不是函数错误
- Jquery菜单操作不稳定,定位不正确,存在一般错误
- document.open/document.write没有正确地清除chrome中的文档——这是chrome的错误吗
- 试图在引导模式内动态生成图表,得到offsetWidth错误
- 为什么会出现错误;未捕获的类型错误:undefined不是函数;
- 我如何修复包含在captcha的addthis中的错误
- 同样,同样的错误'ahorcado.js:26未捕获类型错误:无法读取属性'beginPath'
- 节点是否需要模块传递带有方括号的arg?这是个错误吗
- Webpack/Rect:遵循egghead.io教程,但出现错误:您可能需要一个合适的加载程序来处理此文件类型
- CKFinder 3为所选文件返回错误的URL
- 同位素库错误:未捕获错误无布局模式包装生产线8
- 铬:“;未捕获的语法错误:意外的标记:"
- 如何通过自己获得Chrome扩展的用户反馈/错误报告
- 相位器状态未捕获参考错误
- /undefined在我的404错误日志中多次出现
- Javascript未捕获语法错误意外的标识符错误
- javascript:如何在antlr生成的Lexer中进行错误处理
- video.js错误的m3u8源:“;找不到兼容的源和播放技术&”;
- jQuery -错误的技术或错误
- 避免这种解析错误的技术?JSON +双引号