У меня возникла проблема с некоторым кодом javascript, который я не могу найти решение и надеюсь, что некоторые из вас могут помочь мне найти решение.ошибки оператора javascript IF
Проблема заключается в том, что в коде, указанном ниже, указан код if(a>b)
. Я получаю разные ошибки в зависимости от того, как я пишу вывод if if в зависимости от того, где я выгляжу. Я получаю разные ошибки.
инструмент разработчика Chrome говорит:
Uncaught SyntaxError: Unexpected token ;
инструмент разработчика IE говорит:
Uncaught SyntaxError: Unexpected token)
я получаю тот же результат, если я пишу if(3>1)
так что я не думаю, что его или б, что является проблема.
Если я пытаюсь if(b<a)
то GlassFish бросает исключение, сказав, что ошибка ниже, где строка 39 является, если оператор
Error Traced[line: 39] The content of elements must consist of well-formed character data or markup.
if(1<3)
производит один и тот же результат, как if(b<a)
теперь, если я пишу if(3===1)
или if(3===3)
его отлично работает, и код работает отлично и дает ожидаемый результат для использования знаков «===», но теперь мне нужно иметь возможность использовать <
или >
.
Этот код отлично работал, прежде чем модернизировать стеклянную рыбку до 4.1 и множество пакетов до последней версии.
Я перекомпилировал его много раз и перезапустил сервер, но пока ничего не добился.
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:cc="http://java.sun.com/jsf/composite" xmlns:tp="http://java.sun.com/jsf/composite/components" xmlns:fn="http://java.sun.com/jsp/jstl/functions">
<cc:interface>
<cc:attribute name="text" type="java.lang.String" required="true" />
<cc:attribute name="maxsize" type="java.lang.Integer" required="true" />
<cc:attribute name="style" type="java.lang.String" required="false" />
</cc:interface>
<cc:implementation>
<p id="par#{component.clientId}" style="#{cc.attrs.style}">
<span id="span#{component.clientId}"><h:outputText value="#{cc.attrs.text}" /></span>
</p>
<script>
var span = $("[id='span#{component.clientId}']");
var linkShow = $("<a/>");
linkShow.attr("id", "linkShow#{component.clientId}");
linkShow.attr("style", "color: #07A0DD;");
linkShow.text("Visa mer");
linkShow.hide();
var linkHide = $("<a/>");
linkHide.attr("id", "linkHide#{component.clientId}");
linkHide.attr("style", "color: #07A0DD;");
linkHide.text("Visa mindre");
linkHide.hide();
var a = "#{cc.attrs.text}".length;
var b = #{cc.attrs.maxsize};
if (a > b) {
span.text("#{cc.attrs.text}".substring(0, # {
cc.attrs.maxsize
}) + "... ");
$("[id='par#{component.clientId}']").append(span);
$("[id='par#{component.clientId}']").append(linkShow);
$("[id='par#{component.clientId}']").append(linkHide);
$("[id='linkShow#{component.clientId}']").show();
$("[id='linkShow#{component.clientId}']").click(function() {
$("[id='span#{component.clientId}']").text("#{cc.attrs.text}");
$("[id='linkHide#{component.clientId}']").show();
$("[id='linkShow#{component.clientId}']").hide();
});
$("[id='linkHide#{component.clientId}']").click(function() {
$("[id='span#{component.clientId}']").text("#{cc.attrs.text}".substring(0, # { cc.attrs.maxsize}) + "... ");
$("[id='linkShow#{component.clientId}']").show();
$("[id='linkHide#{component.clientId}']").hide();
});
}
</script>
</cc:implementation>
</html>
'вар б = # {' ??? Откройте консоль и отлаживайте ее. Не задавайте вопрос о SO только для синтаксической ошибки. ** EDIT: ** Хорошо, я вижу, что это относится к движку шаблонов, поэтому, по крайней мере, используйте соответствующий тег в вопросе –
Отладчик обычно также дает вам строку, которая вызывает ошибку, проверьте эту строку. – illinoistim
Ive проверил отладку, и как a, так и b дают правильные значения, где в случае, когда я тестировал a дал 1006, а b - 200. Как упоминалось в комментарии выше, ive заменил a и b на 3 и 1, и это stil производит тот же результат , –