原型JS不删除选择元素
PrototypeJS not removing select element
鉴于以下 HTML,我正在尝试删除所有表单元素。我遇到的问题是没有删除select
元素,而是每次调用删除代码时都会删除其中的第一个option
。请参阅 http://jsfiddle.net/b8FfT/
.HTML
<fieldset>
<div id="order_history_block">
<div id="history_form" class="order-history-form">
<div>Add Order Comments</div>
<span class="field-row">
<label class="normal" for="history_status">Status</label><br>
<select name="history[status]" class="select" id="history_status">
<option value="processing">Ok to Ship</option>
<option value="pending" selected="selected">Pending</option>
</select>
</span>
<span class="field-row">
<label class="normal" for="history_comment">Comment</label>
<textarea name="history[comment]" rows="3" cols="5" style="height:6em; width:99%;" id="history_comment"></textarea>
</span>
<div class="f-left">
<input name="history[is_visible_on_front]" type="checkbox" id="history_visible" value="1"><label class="normal" for="history_visible"> Visible on Frontend</label>
</div>
<div class="f-right">
<button id="id_79ae3bd75916862b0245fbcb3343d24e" title="Submit Comment" type="button" class="scalable save" onclick="doStuff()" style=""><span><span><span>Submit Comment</span></span></span></button>
</div>
<div class="clear"></div>
</div>
<div class="divider"></div>
<!-- ... -->
</div>
</fieldset>
.JS
var a = $('order_history_block').parentNode;
$(a).select('input', 'select', 'textarea').invoke('remove');
所以 HTMLSelectElement 原型(不是框架)有自己的remove()
方法,当你在 <select>
上调用 remove()
时,它不会沿着原型链向上遍历到 PrototypeJS 添加的 HTMLElement remove()
方法。
2个选项给你
$('history_status').parentNode.removeChild($('history_status'));
或
Element.remove($('history_status'));
我也为此提交了错误报告
https://github.com/sstephenson/prototype/issues/122
编辑
像这样使用 CSS 选择器和 select()
方法
$('order_history_block').up().select('select').each(function(item){
Element.remove(item);
});
相关文章:
- WebdriverIO waitForExist()选择元素's选定的选项
- 如何选择元素的第n个子元素
- Angular没有根据模型更新我的选择元素
- jquery使用name from变量按类选择元素
- 如何使用jQuery按数据日期属性选择元素
- 向html选择元素添加选项
- 使用Jquery在相同类型的元素中选择元素
- 他们是如何使用angular/jqLite find()方法按属性名称和值选择元素的?ng conf 2015
- 如何在Angular中清除选择元素中的过滤器
- 使用其中一个元素作为参考点,从Javascript数组中选择元素
- Javascript选择元素到字符串的比较
- Angular始终选择选择元素中的第一个选项
- 使用 jquery .find() 遍历按类和存储属性选择元素
- 通过 id json, jquery 选择元素
- 如何基于另一个已经存在的选择器选择元素
- 禁用多个选择元素中的非“选定”选项,但使用 jquery 的一个除外
- HTML 选择元素的只读等效项
- 在iPad上,如何通过Javascript事件在选择元素上设置focus()而不显示选项
- 单击事件似乎不适用于 IE 中的选择元素
- Angular js,在选择元素上,我想 POST 数据以将其保存在数据库中,然后我想使用 PUT 更新它而无需重新加载