<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>toyosystem &#187; javascript</title>
	<atom:link href="http://www.jamboree.jp/cms/archives/category/javascript/feed" rel="self" type="application/rss+xml" />
	<link>http://www.jamboree.jp/cms</link>
	<description>名古屋在住のWebプログラマー</description>
	<lastBuildDate>Fri, 26 Aug 2011 12:41:42 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.1</generator>
		<item>
		<title>IEにjQueryでselectのoptionを追加できない</title>
		<link>http://www.jamboree.jp/cms/archives/90</link>
		<comments>http://www.jamboree.jp/cms/archives/90#comments</comments>
		<pubDate>Sat, 26 Jan 2008 13:42:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.jamboree.jp/cms/archives/90</guid>
		<description><![CDATA[JSONでとってきたデータを使ってselectのoptionを作っていた。 最初は var html = ""; html = '&#60;option value="" selected="selected"&#62;選択してください&#60;/option&#62;'; $(html).appendTo("#select_box"); for (var i = 0; i &#60; list.length; i++) { if(list[i][name_index] == family){ html = '&#60;option value="' + list[i][year_index] + '"&#62;' + list[i][year_index] + '&#60;/option&#62;'; $(html).appendTo("#select_box"); } } こんな感じで にHTMLを追加していく方法でやっていた。 しかし問題が2点、この方法で追加するとIE6では最後に追加した要素が選択状態になってしまう しかもselectedIndexとかを使っても変更できない（後入れは評価されない？FireFoxだと動く） 今回の場合はデフォルトでは一番上の「選択してください」を表示していて欲しいので困った。 次にじゃあDOMを使ってやればいいんだろうと思って $("#select_box").append(new Option("","選択してください")); for (var i = 0; i &#60; [...]]]></description>
			<content:encoded><![CDATA[<p>JSONでとってきたデータを使ってselectのoptionを作っていた。<br />
最初は</p>
<pre class="javascript"><span class="keyword" >var</span> html = <span class="string" >""</span>;
html = <span class="string" >'&lt;option value="" selected="selected"&gt;選択してください&lt;/option&gt;'</span>;
$(html).appendTo(<span class="string" >"#select_box"</span>);
<span class="keyword" >for</span> (<span class="keyword" >var</span> i = 0; i &lt; list.length; i++) {
	<span class="keyword" >if</span>(list[i][name_index] == family){
		html = <span class="string" >'&lt;option value="'</span> + list[i][year_index] + <span class="string" >'"&gt;'</span> + list[i][year_index] + <span class="string" >'&lt;/option&gt;'</span>;
		$(html).appendTo(<span class="string" >"#select_box"</span>);
	}
}
</pre>
<p>こんな感じで<br />
<select id="select_box"></select>
<p>にHTMLを追加していく方法でやっていた。<br />
しかし問題が2点、この方法で追加するとIE6では最後に追加した要素が選択状態になってしまう<br />
しかもselectedIndexとかを使っても変更できない（後入れは評価されない？FireFoxだと動く）<br />
今回の場合はデフォルトでは一番上の「選択してください」を表示していて欲しいので困った。</p>
<p>次にじゃあDOMを使ってやればいいんだろうと思って</p>
<pre class="javascript">$(<span class="string" >"#select_box"</span>).append(<span class="keyword" >new</span> Option(<span class="string" >""</span>,<span class="string" >"選択してください"</span>));

<span class="keyword" >for</span> (<span class="keyword" >var</span> i = 0; i &lt; bikeList.length; i++) {
	<span class="comment" >//重複した名前は使わない</span>
	<span class="keyword" >if</span>(!in_array(list[i][name_index],name_list)){
		$(<span class="string" >"#select_box"</span>).append(<span class="keyword" >new</span> Option(list[i][name_index],list[i][name_index]));
		$(html).appendTo(<span class="string" >"#select_box"</span>);
		name_list.push(list[i][name_index]);
	}
}</pre>
<p>こうした、こっちの方が正しいやりかただと思うので正常に動くかと思ったら<strong>IEでは表示すらしなくなった</strong>。</p>
<p>jQuery で select タグの option タグを増減させるときの注意点 (でぃべろっぱーず・さいど)<br />
<a href="http://dev.chrisryu.com/2007/12/jquery_tips_about_add_option_to_selectbox.html">http://dev.chrisryu.com/2007/12/jquery_tips_about_add_option_to_selectbox.html</a></p>
<p>どうもjQueryオブジェクトとの相性が悪いらしい。なので仕方なく</p>
<pre class="javascript">select_box = window.document.getElementById(<span class="string" >"select_box"</span>);
<span class="keyword" >var</span> count = 0;
select_box.options[count++] = <span class="keyword" >new</span> Option(<span class="string" >"選択してください"</span>,<span class="string" >""</span>);

<span class="keyword" >for</span> (<span class="keyword" >var</span> i = 0; i &lt; list.length; i++) {
	<span class="comment" >//重複した名前は使わない</span>
	<span class="keyword" >if</span>(!in_array(list[i][name_index],name_list)){
		select_box.options[count++] = <span class="keyword" >new</span> Option(list[i][name_index],list[i][name_index]);
		name_list.push(list[i][name_index]);
	}
}
select_box.selectedIndex = 0;</pre>
<p>と普通のjavasCriptで書いたらばっちり動いた。こういう本質と関係ないところではまるのは疲れる。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jamboree.jp/cms/archives/90/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>特定のクラスの色を変更するjavascript</title>
		<link>http://www.jamboree.jp/cms/archives/55</link>
		<comments>http://www.jamboree.jp/cms/archives/55#comments</comments>
		<pubDate>Wed, 07 Nov 2007 01:10:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.jamboree.jp/cms/archives/55</guid>
		<description><![CDATA[セルの数が1000個ぐらいのテーブルがあって、その中のマイナスの数字だけ色を赤色にしたかった。 phpで書き出しているので、そっちでspanで囲ったりするようにしても良いのだがスマートじゃない。 幸い数字の入ったセルには右寄せをするためにclass=&#8221;num&#8221;というのが入っており、prototype.jsも使える var nums = document.getElementsByClassName('num'); var ret = nums.findAll( function(val,key){ if(val.innerHTML.substr(0,1) == "-"){ Element.addClassName(val,'clrblue'); } } );]]></description>
			<content:encoded><![CDATA[<p>セルの数が1000個ぐらいのテーブルがあって、その中のマイナスの数字だけ色を赤色にしたかった。<br />
phpで書き出しているので、そっちでspanで囲ったりするようにしても良いのだがスマートじゃない。<br />
幸い数字の入ったセルには右寄せをするためにclass=&#8221;num&#8221;というのが入っており、prototype.jsも使える</p>
<pre class="javascript"><span class="keyword" >var</span> nums = document.getElementsByClassName(<span class="string" >'num'</span>);
<span class="keyword" >var</span> ret = nums.findAll(
    <span class="keyword" >function</span>(val,key){
        <span class="keyword" >if</span>(val.innerHTML.substr(0,1) == <span class="string" >"-"</span>){
              Element.addClassName(val,<span class="string" >'clrblue'</span>);
        }
    }
);</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.jamboree.jp/cms/archives/55/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>「画面をそのまま仕様書に」高速開発のためのajax掲示板</title>
		<link>http://www.jamboree.jp/cms/archives/5</link>
		<comments>http://www.jamboree.jp/cms/archives/5#comments</comments>
		<pubDate>Wed, 14 Mar 2007 21:41:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.jamboree.jp/cms/?p=5</guid>
		<description><![CDATA[「HTML画面をそのまま仕様書に」，5カ月で1000画面を構築した就職サイトPuffの高速開発手法 この記事を読んで便利そうだなと思ったのが 引用：HTMLテンプレートに「『仕様』と『開発者向けメモ』を直に書いてしまう というところだ。 開発画面を見てもらいながら、どんどん開発していくという時なんかに非常に便利だ。 TODOリストを作る必要もないし、作る必要がないから忘れることも無い。 なので、作ってみた。 参考にしたのは 静的HTMLページに1行コメントを書き込める掲示板 PHP:JS(JavaScript)からPHPを呼び出しHTML上に出力する方法 prototype.js逆引きサンプル集 で、成果物がこちら demo:http://www.jamboree.jp/ajaxMyComment.html ポイントは下記のとおり javascriptで読み書きを行う urlをキーにしてデータを保存している つまり、javascriptを使っているだけなのでHTMLのページにも掲示板を貼り付けることができる。また、urlをキーにしてデータを管理しているので、例えばテンプレートで管理しているときなどはfooter部分に挿入してやれば全ページに一度に掲示板をつけることができる。 お試しで使ってみるには以下のコードを好きなHTMLに貼り付けてみてください。 &#60;script type=&#8221;text/javascript&#8221; src=&#8221;http://www.jamboree.jp/ajaxMyComment/ajaxMyComment.js&#8221;&#62;&#60;/script&#62; また、ダウンロードはこちらからできます。 download: ajaxMyComment0.1 TODOとしてハードコーディング部分なんかが残っていますね。javascriptの勉強がんばります。]]></description>
			<content:encoded><![CDATA[<p><a href="http://itpro.nikkeibp.co.jp/article/COLUMN/20070214/261859/" target="_blank">「HTML画面をそのまま仕様書に」，5カ月で1000画面を構築した就職サイトPuffの高速開発手法</a></p>
<p>この記事を読んで便利そうだなと思ったのが</p>
<p>引用：HTMLテンプレートに「『仕様』と『開発者向けメモ』を直に書いてしまう<br />
というところだ。</p>
<p>開発画面を見てもらいながら、どんどん開発していくという時なんかに非常に便利だ。</p>
<p>TODOリストを作る必要もないし、作る必要がないから忘れることも無い。</p>
<p>なので、作ってみた。</p>
<p>参考にしたのは</p>
<p><a href="http://www.kawa.net/works/ajax/ajaxcom/ajaxcom.html" target="_blank">静的HTMLページに1行コメントを書き込める掲示板</a><br />
<a href="http://www.res-system.com/item/383" target="_blank">PHP:JS(JavaScript)からPHPを呼び出しHTML上に出力する方法</a><br />
<a href="http://javascriptist.net/docs/samples_prototype.html" target="_blank">prototype.js逆引きサンプル集</a></p>
<p>で、成果物がこちら</p>
<p>demo:<a href="http://www.jamboree.jp/ajaxMyComment.html" target="_blank">http://www.jamboree.jp/ajaxMyComment.html </a></p>
<p>ポイントは下記のとおり</p>
<ul>
<li>javascriptで読み書きを行う</li>
<li>urlをキーにしてデータを保存している</li>
</ul>
<p>つまり、javascriptを使っているだけなのでHTMLのページにも掲示板を貼り付けることができる。また、urlをキーにしてデータを管理しているので、例えばテンプレートで管理しているときなどはfooter部分に挿入してやれば全ページに一度に掲示板をつけることができる。</p>
<p>お試しで使ってみるには以下のコードを好きなHTMLに貼り付けてみてください。</p>
<p>&lt;script type=&#8221;text/javascript&#8221; src=&#8221;http://www.jamboree.jp/ajaxMyComment/ajaxMyComment.js&#8221;&gt;&lt;/script&gt;</p>
<p>また、ダウンロードはこちらからできます。</p>
<p>download: <a href="http://www.jamboree.jp/upload_files/ajaxMyComment.zip">ajaxMyComment0.1</a></p>
<p>TODOとしてハードコーディング部分なんかが残っていますね。javascriptの勉強がんばります。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jamboree.jp/cms/archives/5/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

