元素 都是对象, 不能直接比较是否相等
创新互联建站专注于普陀企业网站建设,响应式网站建设,商城建设。普陀网站建设公司,为普陀等地区提供建站服务。全流程按需搭建网站,专业设计,全程项目跟踪,创新互联建站专业和态度为您提供的服务
因为元素的对象有很多属性 2个value一模一样的元素 因为在dom流中所处的位置不同, 那么他的top left 等属性也不相同, 即使元素是重叠的, 那么元素的Z-INDEx也是不同的.
总之 一个页面中不存在2个一模一样的元素. 所以只能判断元素的某个属性是否相同 而不能判断 两个元素是否相同.
[img]必须有一个标准吧,选2个的话哪一个是不需要输出的,全选的话会出现全部不一样的情况吗,这些都清楚了才可以写
table width="100%" border="0" cellspacing="0" cellpadding="0"
tr
tdinput class="in" name="check[]" type="checkbox" value="1" id="id1" //td
td1/td
td待财务初审/td
td通用机打发票/td
td1/td
td否/td
td/td
td........./td
/tr
tr
tdinput class="in" name="check[]" type="checkbox" value="2" id="id2" //td
td1/td
td待财务初审/td
td通用机打发票/td
td2/td
td否/td
td/td
td........./td
/tr
tr
tdinput class="in" name="check[]" type="checkbox" value="3" id="id3" //td
td1/td
td待财务初审/td
td通用机打发票/td
td11/td
td是/td
td/td
td........./td
/tr
/table
input id="butt" type="button" value="按钮" /
script
$(function(){
$("#butt").click(function(){
var d=[];
var i=1;
$("input[class=in]:checked").each(function(){
var t=$(this).val();
var htm=$("#id"+t).parents("tr").children("td");
d.push(htm.eq(2).html()+htm.eq(3).html()+htm.eq(5).html()+htm.eq(6).html());
i++;
});
alert(GetUnique(d));
});
function GetUnique(inputArray){
var outputArray=[];
for(var i=0;iinputArray.length;i++){
if((jQuery.inArray(inputArray[i],outputArray))==-1){
outputArray.push(inputArray[i]);
}
}
return outputArray;
}
});
/script
______________________________________
上面只是根据你的说明写出来的例子,具体的还要看你的html布局
根据你说的,我建议你使用异步的方法做会比较简单和方便。
使用恒等(===)判断(值与类型都一致)
如果用用等同(==)判断(值一致)的话有误判情况
var a = "1"; //字符串1
var b = 1; //数值1
var c = true; //布尔值1
var d = "1";
if (a==b a==c a==d) {console.log('equality');} //输出equality
if (a===b || a===c) { //输出not identity
console.log('identity');
}
else {
console.log('not identity');
}
if (a===d) {console.log('identity');} //输出identity
只拿对象比较的话,取出的是对象类型,可以试试alert(a.parent().parent())返回是object
这是无法比较的,最好是用ID或者class标识出不同对象
实在有特殊情况的话,上面的例子可以用alert(a.parent().parent().html() === a.parent().parent().html());
但是页面里有别的相同的html结构的话,会产生歧义