Использовал номер типа ввода, чтобы избежать проблемы с конкататом строк. Также проверяется на действительное число после добавления с помощью isNan , иначе он назначит пустое значение в столбце. Вы также можете добавить сообщение об ошибке здесь.
$("#total").click(function() {
$("tbody tr").each(function() {
var a = ($(".a", this).val());
var b = ($(".b", this).val());
var tt = a + b;
if (!isNaN(tt))
$('.a-b', this).text(tt);
else
$('.a-b', this).text(''); //your error message if addition is invalid
})
});
td,
th {
border: solid 1px #000;
padding: 5px;
}
a
b
a+b
EDIT: too bad, though all seemed fine in the preview, the clickable examples seem to mess up things... Maybe the layout is fine in the history.
I've heard, but cannot validate for IE, that both IE and Firefox support the "view-source:" pseudo-protocol. Firefox on Mac indeed understands it, but Safari does not.
The following bookmarklet will not trigger the XSLT transformation specified in the XML. And though Firefox will render this using some colours, it does not execute the default transformation it would normally use for XML without any XSLT (so, the result of view-source does NOT yield a collapsable document tree that Firefox would normally show):
javascript:(function(){
var u = 'http://www.w3schools.com/xsl/cdcatalog_with_ex1.xml';
var w = window.open();
w.document.location.href = 'view-source:' + u;
})()
When fetching the document using Ajax then one is not limited to the alert
oneporter used, but can display it in a new window as well. Again: this will not invoke the XSLT transformation that is specified:
javascript:(function(){
var u = 'http://www.w3schools.com/xsl/cdcatalog_with_ex1.xml';
var w = window.open(); /* open right away for popup blockers */
var x = new XMLHttpRequest();
x.open('GET', u, true);
x.onreadystatechange = function(){
if(x.readyState == 4){
w.document.open('text/html');
/* hack to encode HTML entities */
var d = document.createElement('div');
var t = document.createTextNode(x.responseText);
d.appendChild(t);
w.document.write('<html><body><pre>'
+ d.innerHTML + '</pre></body></html>');
w.document.close();
w.focus();
}
};
x.send(null);
})()
Разве вы не можете просто сделать «Просмотр исходного кода» в обоих браузерах?
Пока вам не придется иметь дело с междоменными разрешениями, простое окно запроса / оповещения ajax с источником XML сделал бы трюк. Вам придется добавить немного в объявление xmlHttp, чтобы сделать его совместимым с IE.
<html>
<body>
<script language="JavaScript">
function ajaxFunction()
{
var xmlHttp=new XMLHttpRequest();;
xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState==4)
{
alert(xmlHttp.responseText);
}
}
xmlHttp.open("GET","YOURFILE.xml",true);
xmlHttp.send(null);
}
</script>
<a href="#" onclick="JavaScript:ajaxFunction()">Errors</a>
</body>
</html>
Вы можете избежать инструкции по обработке, используя промежуточный шаг для предварительной обработки XML перед выводом содержимого в браузер.
Предложение на стороне клиента
Предложение на стороне сервера
Вместо того, чтобы напрямую запрашивать соответствующий XML-документ, вместо этого сделайте запрос к прокси-сценарию, который удалил из содержимого XML все инструкции по обработке или даже все, что вам не нужно.
Вместо этого из:
window.location = 'http://example.com/document.xml';
использовать:
window.location = 'http://example.com/proxy/';
Сценарий на http://example.com/proxy/ будет:
.xml
Насколько я знаю, нет способа сделать то, что вы пытаетесь сделать. Проблема в том, что javascript не может прочитать dom xml из преобразования xml / xsl на стороне клиента. Что касается javascript, он выполняется на обычном html dom.
Однако, в зависимости от типа веб-приложения, может быть некоторая надежда. Вы можете использовать ajax для получения xml текущего URL. Пока нет данных постов или какой-либо другой случайности, этот метод должен работать нормально.