将jQuery从1.8更新到1.11<a>标记未附加
Updating jQuery from 1.8 to 1.11 <a> tag not getting appended
我正在尝试将此javascript代码从1.8
更新为1.11
,但遇到了问题。以下代码以前在1.8
中工作,但现在只工作了一半(没有错误)。
我有以下功能:
function selectCountry(c_id){
var obj = $('#country a[data-index=' + c_id + ']');
if(obj.hasClass('cselect'))
return;
var clone = obj.clone();
var div = $('<div class="keyword-box"></div>');
var remove = $('<a href="javascript:void(0);" data-index="' + c_id + '" data-label="removeCountry_label" data-action="removeCountry" class="remove EXremove">×</a>');
clone.after(remove).appendTo(div);
div.prependTo('#selected_country');
obj.hide().addClass('cselect');
return false;
}
它过去所做的是创建这样一个div:
<div class="keyword-box">
<a href="javascript:void(0);" class="country-link keyword" data-index="9" rel="Albania">Albania</a>
<a href="javascript:void(0);" data-index="9" data-label="removeCountry_label" data-action="removeCountry" class="remove EXremove">×</a>
</div>
但现在它正在创建这样一个div:
<div class="keyword-box">
<a href="javascript:void(0);" class="country-link keyword" data-index="9" rel="Albania">Albania</a>
</div>
我不知道为什么第二个a
标记不再添加到div中。有人明白为什么会发生这种事吗?
1.9版中的jQuery发生了更改
在1.9之前,.fafter()、.foref()和.replaceWith()将尝试如果集合未连接到文档,在这些情况下返回一个新的jQuery集合而不是原始集合。这创造了几个不一致和彻底的错误——该方法可能会也可能不会根据其参数返回一个新结果!截至1.9方法总是返回原始的未修改集,并尝试在没有父级的节点上使用.fafter()、.foree()或.replaceWith()没有任何效果--也就是说,集或它包含的节点都不是已更改。
在您的情况下,您可以更改
clone.after(remove).appendTo(div);
至
clone.add(remove).appendTo(div);
或
div.append(clone, remove);
我认为如果你添加这样的链接,你的代码会更可读:
div.append(clone);
div.append(remove);
div.prependTo('#selected_country');
在jQuery 1.9中更改了.after()
API。在你的案例中使用它现在没有效果。我认为您可能应该创建<div>
,并显式地将两个<a>
元素分别附加到其中
因此:
var div = $('<div class="keyword-box"></div>');
var remove = $('<a href="javascript:void(0);" data-index="' + c_id + '" data-label="removeCountry_label" data-action="removeCountry" class="remove EXremove">×</a>');
remove.appendTo(div);
clone.appendTo(div);
相关文章:
- 通过点击<李>在jQuery中
- 如何逃离<脚本>jquery html()中的标记.我使用了innerHTML和outerHTML来解决这个
- 有没有一种方法可以检测ios<>使用jquery和触发器操作形成导航按钮
- Jquery在点击<a>标签
- 将jQuery从1.8更新到1.11<a>标记未附加
- 转换<a>使用jQuery将文本字符串转换为dom元素
- 在<头部>使用javascript/jQuery
- JS对象->来自jquery ajax的JSON提交->php迭代
- jQuery只隐藏<tr>在一张桌子上
- jQuery可读性:在<李>要素
- Jquery :gt(value) issue
- jquery仅限<并且>文本框中的符号
- jQuery/Javascript>on单击将文本放置在最后一个已知的光标位置
- 检查页面范围并提取<h1>内容(如果使用JQuery存在页面)
- 检测活动<李>用于jQuery转盘(分页)
- jQuery将输入集中在下一个tr->td时,td包含一个输入字段,但从不关注html选择
- jquery 1.8.0语法错误,无法识别的表达式:>
- jQuery复选框(在ul>li下)检查事件
- jQuery:如何添加<br/>在不同的字符串中换行以分隔2中的句子
- 如何对Appendid<李>-jQuery中的项