我有一个与Javascript验证相关的问题:
如何在两个标签之间找到差异(第一个标签中可用但不在第二个标签中的字符)?
谢谢 - 请参阅以下代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<table width="50%" border="0" cellspacing="0" cellpadding="4" style="font-family:Arial, Helvetica, sans-serif; font-size:12px;">
<tr>
<td width="44%" align="right">Label 1</td>
<td width="56%"><input type="text" value="ABCD" /></td>
<td width="56%" style="color:#C00;">Note</td>
</tr>
<tr>
<td align="right">Label 2</td>
<td><input type="text" value="AEBHL" /></td>
<td rowspan="2" valign="top">I want to show the difference of Label 1 and Label 2 in Diffrence's input. How could I find the difference?</td>
</tr>
<tr>
<td align="right">Difference</td>
<td><input type="text" value="EHL" style="border:1px solid #C00;" /></td>
</tr>
</table>
</body>
</html>
答案 0 :(得分:2)
获取第一个标签的文字。
获取第二个标签的文字。
计算两个标签之间的差异。 将差异分配给差异行。
您可以在此处看到它:http://jsfiddle.net/Anton87/RDvJf/
var label1 = jQuery("table tr:eq(0) input").val(),
label2 = jQuery("table tr:eq(1) input").val(),
diff2 = difference(label2, label1);
jQuery("table tr:eq(2) input").val(diff2);
function difference(label1, label2) {
var difference = [];
for (var i = 0, max = label1.length; i < max; i++) {
if (label2.indexOf(label1[i]) === -1) {
difference.push(label1[i]);
}
}
return difference;
}