Estou recebendo o erro de que a função cut não tá definida. Estou linkando alguma coisa errada? Qual a forma certa de chamar a função do .js externo no onclick?
<!DOCTYPE html><html><head><title>Testes</title><scriptsrc="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script><scriptsrc="cutString.js"></script></head><body>
Entre com string: <inputtype="text"id="str"><br>
Qt. de chars pra cortar: <inputtype="text"id="n"><inputtype="button"value="Me corta!"onclick="cut(document.getElementById('str').value, document.getElementById('n').value);"><divid="chopped"></div><scriptsrc="https://code.jquery.com/jquery-3.2.1.min.js"integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4="crossorigin="anonymous"></script></body></html>
O problema é que a função cut está definida no escopo da função anônima usada pelo ready. Ou seja, ela é visível dentro dessa função (a anônima) apenas. Para torná-la visível no onclick, coloque-a para fora do ready:
Faria sentido usar o ready caso vc fosse fazer o bind do onclick por ele, veja:
HTML
<!DOCTYPE html><html><head><title>Testes</title><scriptsrc="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script><scriptsrc="js.js"></script></head><body>
Entre com string: <inputtype="text"id="str"><br>
Qt. de chars pra cortar: <inputtype="text"id="n"><inputtype="button"id="cutButton"value="Me corta!"><divid="chopped"></div><scriptsrc="https://code.jquery.com/jquery-3.2.1.min.js"integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4="crossorigin="anonymous"></script></body></html>
Então, eu refiz das dessas duas formas, mas nenhum dos appends funciona. A saída do console.log está ok, mas é como se os appends não existissem.
<!DOCTYPE html><html><head><title>Testes</title><scriptsrc="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script><scriptsrc="cutString.js"></script></head><body>
Entre com string: <inputtype="text"id="str"><br>
Qt. de chars pra cortar: <inputtype="text"id="n"><inputtype="button"value="Me corta!"id="cutButton"><divid="chopped"></div><scriptsrc="https://code.jquery.com/jquery-3.2.1.min.js"integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4="crossorigin="anonymous"></script></body></html>
O que está faltando é que vc colocou “chopped”, ao invés de #chopped. No primeiro caso, a jQuery esta procurando um elemento chamado e não uma div com id=“chopped”, que é o que você quer