为什么replaceWith取消对其变量的调用
Why does replaceWith cancels calls to its variable?
我正在尝试克隆dom元素并更改它们的标记。但是在我替换主元素之后,我不能更改它的子元素,也不能应用一些点击事件。
我评论了一行,之后它就停止工作了。谢谢你的帮助!
http://codepen.io/sanns/pen/eJvzBN?editors=101
var selectDom = $('select');
selectDom.each(function() {
var clone = $(this).clone().insertAfter(this);
//take classes from clone
var classesStr = clone.attr('class');
clone = clone.replaceWith(function(index, oldHTML) {
return $('<div class="custom-select ' + classesStr + '">').html(oldHTML);
});
//why does not work?
clone.find('option').replaceWith(function(index, oldHTML) {
return $('<li>').html(oldHTML);
});
clone.wrapInner('<ul class="scrollbox"></ul>').prepend('<span class="shower"> Выберитеtttttttttteeeee тратататататат</span>');
//BEHAVIOR SELECT
clone.on('click', function() {
alert('asdf');
});
});
实际上.replaceWith()
返回原始的jQuery object
,而不是用某些东西替换。
您可以找到更多详细信息:http://api.jquery.com/replacewith/
下面是一个小例子:
$( "button" ).click(function() {
$( this ).replaceWith( "<div>" + $( this ).text() + "</div>" );
});
button {
display: block;
margin: 3px;
color: red;
width: 200px;
}
div {
color: red;
border: 2px solid blue;
width: 200px;
margin: 3px;
text-align: center;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button>First</button>
<button>Second</button>
<button>Third</button>
相关文章:
- 从带参数的字符串变量调用函数中的函数
- 将方法从控制器注入到未使用右变量调用的指令
- 为什么可以对整数变量调用toString(),而不能对文字数字调用
- 我可以对变量调用“.log”吗?
- 是否可以对超出范围的 setInterval 变量调用 clearInterval 方法
- 对模板中的胡子变量调用方法
- 使用不同的变量调用递归函数
- Jquery中的变量调用
- 将循环变量调用到自动压缩选择中
- 如何在 jquery 中用变量调用变量
- jQuery,从变量调用数组对象的一部分
- 在 AngularJS 中使用绑定变量调用控制器方法
- 如何使用变量调用对象及其方法
- 是否可以对变量调用jquery函数
- Android:从javascript传递变量调用Java中的函数
- 带有变量调用的谷歌地图API实现
- 无法对数字变量调用 toFixed
- 如何将嵌套的全局或本地jquery变量调用到html中
- Javascript:如何通过变量调用函数并传递参数
- 对字符串变量调用toUppercase()