做网站的时候需要用到类似echsop的栏目添加时的属性js控制,但ecshop用的是原生的,搬过来时查阅很多资料,对象转换,对象替换。记录在案。
echsop的代码:
/**
* 新增一个筛选属性
*/
function addFilterAttr(obj)
{
var src = obj.parentNode.parentNode;
var tbl = document.getElementById('tbody-attr');
var validator = new Validator('theForm');
var filterAttr = document.getElementsByName("filter_attr[]");
if (filterAttr[filterAttr.length-1].selectedIndex == 0)
{
validator.addErrorMsg(filter_attr_not_selected);
}
for (i = 0; i < filterAttr.length; i++)
{
for (j = i + 1; j <filterAttr.length; j++)
{
if (filterAttr.item(i).value == filterAttr.item(j).value)
{
validator.addErrorMsg(filter_attr_not_repeated);
}
}
}
if (!validator.passed())
{
return false;
}
var row = tbl.insertRow(tbl.rows.length);
var cell = row.insertCell(-1);
cell.innerHTML = src.cells[0].innerHTML.replace(/(.*)(addFilterAttr)(.*)(\[)(\+)/i, "$1removeFilterAttr$3$4-");
filterAttr[filterAttr.length-1].selectedIndex = 0;
}
/**
* 删除一个筛选属性
*/
function removeFilterAttr(obj)
{
var row = rowindex(obj.parentNode.parentNode);
var tbl = document.getElementById('tbody-attr');
tbl.deleteRow(row);
}自己写的:
<script type="text/javascript">
function clone(obj){
var srcs = obj.parentNode;
var src = obj.parentNode.parentNode;
var v = $(srcs);
v.clone().appendTo(src);
v.nextAll().children('a').each(function(){
$(this).attr(' $(this).html('[-]');
});
}
function closes(obj){
var src = obj.parentNode;
var sr = $(src);
sr.detach();
}
</script>
















