Hatena::ブログ(Diary)

新、俺ら陽気なプログラマー的備忘録

2013-02-27

JQueryのセレクタ指定の罠

| 23:46

罠…なんて少し大げさですが、ちょっとハマったことがありました。

JQuery(8系9系)を使っていてhtmlセレクタ指定でうまく値を取得できなかったので、とりあえず備忘録。

html

<div id="hoge">
  <div class="firstclass">
     <img src="image.jpg">
  </div>
</div>

というのがあって、

このソースから画像ファイル名を取得するとき、

$(#hoge .firstclass).attr("src");

とすれば、値が取れると思いますが、

今度は、こんなhtml

<div id="hoge" class="secondclass">
   <img src="image.jpg">
</div>

このソースから画像ファイル名を取得しようとして…

$(#hoge .secondclass).attr("src");

とすれば、値が取れると思ったのですが…

と、取れなかった…

それどころか、この書き方で値が取れてないなんて思ってなくて、ちょっとハマってしまいました…

alertしてみて始めて気づき…なんとなく書いたのが、

$(#hoge.secondclass).attr("src");

(hogeと.secondclassの間のスペースを消してみた)

と、取れた!

え!?なに!?

ググったんですがそんな記事見当たらなかった…

つまり、idを基準に子クラスを呼ぶ場合は、最初の書き方で良いのですが、

idと同じタグ内に記載してあるクラスを呼びたい場合は、どうもスペースをつめないといけないようなのです。

こちらに関してはもっと検討していきたいです。

それにしても、idはユニークなので、本来はあまりこういう呼び出し方をしないはずですが、

どうしても今回はこういう風に実装せざるを得なかったのです…

今回は、なんとか仕事で実装しましたが、無駄な動きが多いソースになってしまった…

それに、リソースの無駄遣いや、個人的にはもっと直したかったです…

いろいろとまだまだ修行が足りません…トホホ…

ところでセレクタに関するURLメモ

Selectors - jQuery 日本語リファレンス

基本的なとこから

jQuery – いろんなセレクタ指定方法+αを覚えて、目的の要素をさくっと取得する | 1:n – DETELU Blog

一覧で分かりやすいかも

jQueryコーディングの基本的なことからプラグイン化までの注意書き(Webデザイン)

見やすくて分かりやすい!

他にも↑のページに似た素敵なページを見つけたのですが…URL見つけきれなかった…

最近、仕事でJQueryのCycleを使いました

| 23:02

今更な件名ですが…

最近、JQueryプラグイン「cycle」というのを使いました。

もっと詳しくいうと、cycleの中の「curtainX」を使いました。

これがいろんな動きをオプションで指定できて面白い!

今回だけじゃなくて、今後も何かと使っていきたいので、とりあえずURLメモ。

JQuery Cycle Plugin

まずは公式ページ

Cycle [jGlycy]

オプションの一覧が詳しく載っていて、役に立ちました。

Cycle - jQuery プラグイン

各動きのオプションごとに詳しいページがあります。

jQuery Cycle Plugin | Webサイト制作支援 | ShanaBrian Website

全ての動きをこのページのみで確認することができる。便利。

ところで…いつ、どんなページに使おうかしら…

2012-05-12

はっ!!!

| 02:29

なんど更新してもページが古いまま…今書いた記事どこにいったのよ…って焦った…心臓に悪いわ…

xcodeで「ラベルとラベル名を接続」ができない件について

| 02:20

某iphoneアプリの教科書より

story.boardで追加したtext box等にアクションを追加する時、text boxをドラッグしてViewController.hに接続しましょう、ってな記事が数回出てきますが、これがまったくうまくいかない。

何度トライしてもダイアログ(ポップオーバー)が出てくれない…

新しく作り直してもだめ…ググっても出てこない…

うーんって悩んでたら、

AppleDeveloperで「初めてのiOSアプリケーション」なるPDFを発見!

no title

ここにちゃんと書いてあった!!!

「Controlキーを押しながら…」と…

たったこんだけかいっ!!!

こんなことでつまづいたのって私だけ!?トホホ…(泣)

2012-01-09

「2012年、今年の四字熟語」

| 23:42

今週のお題「2012年、今年の四字熟語

「早寝早起」

これに尽きる…w

あと欲張ってもう一つあげるなら…

「大胆不敵」

今年はこういってみたいw

2011年末から2012年始の出来事

| 23:35

なんてこったい!

っていうのが第一声です。

年末早々、某プリンターのドライバインストールしたら、急にWinsowsXPが動かなくなり、

ついでにそろそろ替え時ということで、

12月31日大晦日の閉店ギリギリにbiccameraにマザーボードHDD、メモリ等を買いにいくも、

組み立ててみるも電源が入らず…

原因はマザーボードかな?と思い連絡したところ再入荷とのことで、結局手に入ったのが、8日。

交換したら見事に電源が入りまして、やはりマザーボード不具合でした。

何気にマザーボード不具合は二回目。こんなに不具合に当たるものなのかしら!?

そして、正月から今までは相変わらず超ダラダラ過ごしとります。

目標にしているアプリ開発も全くもって前に進めておらず…

久しぶりに進めようとしたらなんかわけわかんなくなり

最初からやり始める事態に…

くぅ〜〜〜〜

挫折しそう…トホホ…

しかし、2012年始まったばかり。

諦めるには早すぎですねw

2011-12-11

はじめの一歩!

| 23:59

むふ!とりあえず通る道!

すぐ途中で放棄しちゃうんで、今の自分には、「がんばって続けて!」と伝えたい!

f:id:atada_kemiyu:20111211232313j:image

今週のお題「2011年、買って良かったもの」それは…

| 23:53

今週のお題「2011年、買って良かったもの」

や、やはり…今年、10月15日に満を持して(?)購入したmac book airです。

購入に至った経緯は、何気なく欲しいと思って手に入れたiphoneから。

iphoneアプリに興味をもち「私も作ってみたい!」と思ったことがきっかけであります。

しかしその計画は、ぶるとっぴんに進んでる訳もなく…

購入から約二ヶ月たった、ようやく今日、「hello world!」を出力するにとどまっていますw

まぁ、まずまずのはじめの一歩

途中で諦めずに、これからのんびり作っていい2012年を迎えれたらな、と思います。

f:id:atada_kemiyu:20111015220552j:image:left

2011-07-17

PHPのarray_mergeのバグ!?

| 16:37

PHPのarray_mergeを使って、

$hoge1 = array
(
    [09] => Array
        (
            [hoge] => 02
        )

    [10] => Array
        (
            [hoge] => 08
        )
);

この配列

$hage2 = array
(
    [777] => Array
        (
            [hoge] => 99
        )
);

を足そうと思ったわけです。

$res = array_maerge($hoge1,$hage1);

求めていた答えは

$res = array
(
    [09] => Array
        (
            [hoge] => 02
        )

    [10] => Array
        (
            [hoge] => 08
        )
    [777] => Array
        (
            [hoge] => 99
        )
);

だったわけなんですが…

な、なんと実行すると10の添え字が壊れとる…

$res = array
(
    [09] => Array
        (
            [hoge] => 02
        )

    [0] => Array
        (
            [hoge] => 08
        )
    [777] => Array
        (
            [hoge] => 99
        )
);

チーン

で、google先生に聞いてみたら…

BUKUROさんが

http://blog.y-110.net/log/eid69.html

とおっしゃられていました。

ありがとうございます。

phpマニュアルにもちゃんと配列演算子が書いてありました。

http://jp.php.net/manual/ja/language.operators.array.php

というわけであっさり、

$res = $hoge1 + $hage1;

で解決!!

っていうかバグよりこの解決のほうが衝撃的!!