LoginSignup
7
4

More than 5 years have passed since last update.

ワンポイント・CoffeeScript で jQuery を操作してDOM要素を組み立てる

Last updated at Posted at 2013-12-13

追記 CoffeeScript-1.7.0 で改行後の . の扱いが変わっています。

1.7.0以降では1行で記述するか、適宜行末に \\ を追加して下さい。

 

気分としては「twitterで一言つぶやきたい」だけの内容。
気づいて「へー」と思ったので書いておく。たぶん有名なんだよね。

test.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>test</title>
</head>
<body>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.js"></script>
<script type="text/javascript" src="test.js"></script>
</body>
</html>
test.coffee
$('body')
    .append $('<div>')
    .append $('<span>')
    .append 'HOGE'

こうすると、このようにコンパイルされ、

test.js
  // Generated by CoffeeScript 1.6.3
  $('body').append(($('<div>')).append(($('<span>')).append('HOGE')));

実行されると、このような結果になる。

<body>
  <div>
    <span>HOGE</span>
  </div>
</body>

補足

ポイントは、

$('body').append($('<div>')).append($('<span>')).append('HOGE')

↓ は、

  $('body').append($('<div>')).append($('<span>')).append('HOGE');

となるが、

$('body').append   ($('<div>')).append   ($('<span>')).append('HOGE')

↓ なら、

  $('body').append(($('<div>')).append(($('<span>')).append('HOGE')));

となる事。 ※append の後の空白に注目。

空白がないと以下のような結果になる。

$('body')
    .append('<div>')
    .append('<span>')
    .append('HOGE')
<body>
  <div></div>
  <span></span>
  HOGE
</body>

場面によって使い分けよう。

7
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
4