【誰か】jQueryのここがわからない【助けて】at TECH
【誰か】jQueryのここがわからない【助けて】 - 暇つぶし2ch650:デフォルトの名無しさん
11/05/17 08:52:20.94
その結果はdiv spanとは同じではないから当たり前だろ・・・



651:デフォルトの名無しさん
11/05/17 12:54:10.75
>>647>>649
どや顔でレスしてると思うとwwww

652:デフォルトの名無しさん
11/05/17 14:01:05.96
>>647の指摘ほ的確だと思うけどな

653:デフォルトの名無しさん
11/05/17 15:40:24.16
>>651
おまえかわいそう。

654:デフォルトの名無しさん
11/05/18 22:32:16.92
テキストノードをjQuery要素のまま値を取得したり設定したりするにはどう書けばいいですか?
↓うまくいきません
var str = $('#hoge').contents().not('[nodeType=1]').eq(0).text();
$('#hoge').contents().not('[nodeType=1]').eq(0).text('hoge');

↓jQuery要素からDOMに変換(?)するとnodeValueで取得したり設定したりできたんですが
var str = $('#hoge').contents().not('[nodeType=1]').get(0).nodeValue; //取得
$('#hoge').contents().not('[nodeType=1]').get(0).nodeValue = 'hoge'; //設定

655:デフォルトの名無しさん
11/05/19 05:58:41.74
var str = $('#hoge').text();
$('#hoge').text('hoge');

何がやりたいのかよくわからないけど、これじゃダメなの?

656:654
11/05/19 06:55:41.63
ああ、すみません、HTML側はたとえばこんな感じです
<div id="hoge">
aaaa
<p>bbbb</p>
cccc
</div>

657:654
11/05/20 07:52:12.02
やっぱりjQueryのままじゃ無理ですか?DOMにしてnodeValueで取得設定するしかないですか

658:デフォルトの名無しさん
11/05/20 10:57:26.50
bbbbの部分を取得したり書き換えたいってこと?


659:デフォルトの名無しさん
11/05/21 00:04:31.21
クリックしたら、ページを暗くして、画像や文章などを中央に表示して、
関係の無いところを押すと元に戻るみたいなのがありますが、
これのJqueryでのサンプルが載っているページをご存じないでしょうか?

660:デフォルトの名無しさん
11/05/21 10:28:33.86
lightboxでググれ

661:デフォルトの名無しさん
11/05/22 09:24:23.00
質問
なんでこのスレtechにあんの?

662:デフォルトの名無しさん
11/05/22 10:27:40.70
>>661
jQueryというかjavascriptをブラウザでしか使ったことが無いだろお前。

663:デフォルトの名無しさん
11/05/22 21:01:21.70
ブラウザで動かす以外に用途あるの?

664:デフォルトの名無しさん
11/05/22 21:18:06.81
>>663
wsh
デスクトップ ガジェット

でググれ


665:デフォルトの名無しさん
11/05/23 04:12:20.29
JScriptをガシガシ使ってますが?
で、なんでこの板にあるわけ?

666:デフォルトの名無しさん
11/05/23 06:44:05.13
jQuery歴2週間の>>1が単発質問で立てたスレだし、当初から板違いの指摘がある。
もったいないから使ってるだけ。
次スレはWEB制作板でもWebProg板でも移動させたらいい。

667:デフォルトの名無しさん
11/05/23 17:25:59.45
lightboxで中に画像ではなくHTMLを貼りつけられるようなの御存知ありませんか?

668:デフォルトの名無しさん
11/05/23 17:54:11.51
lightbox htmlでググれ

669:デフォルトの名無しさん
11/05/24 23:18:25.74
親画面と小画面でdatepicker(1ヶ月分をカレンダーのように表示)を
それぞれ同時に表示したいんですけど
datepickerの大きさをそれぞれ任意の大きさに変えるにはどうしたらいいですか?
cssで大きさを指定してしまうと、二つとも共通のcssを読み込んでるので
同じ大きさになってしまいます。
二つのdatepickerを自由に大きさを指定するにはどうしたら良いですか?
どなたか教えてください。

670:デフォルトの名無しさん
11/05/24 23:37:53.77
あげます

671:デフォルトの名無しさん
11/05/25 11:32:51.36
>>669
idつければいい

672:デフォルトの名無しさん
11/05/25 20:47:45.81
>>699
やり方はいろいろあると思うけど、
例えば、Datepicker全体をdivとかで囲んでしまって、
そのdivに親と子で違うIDを指定する

// 親
<div id="parent"><!-- ここはDatepicker --></div>

//子
<div id="parent"><!-- ここはDatepicker --></div>

で、スタイルシートのほうで

#parent #datepicker {
 // 親のスタイル
}

#child #datepicker {
 // このスタイル
}

とかすれば、大きさを指定している部分だけの修正で修正範囲も少ないとおもふ

673:デフォルトの名無しさん
11/05/26 19:32:15.44
<textarea id="hoge"></textarea>
--------------------------------------------
$("#hoge").text("hoge\nhoge")

クリックしたらテキストエリアの内容を書き変えたいんだけど、
書き換えたい文字列に改行コードが入ると unterminated string literal というエラーが出てうまくいかないお…

(´;ω;)どうすればいいのー

674:デフォルトの名無しさん
11/05/26 20:47:25.95
html()のほうかなー
試してないけど違ったらごめんね

675:デフォルトの名無しさん
11/05/26 21:19:33.05
>>674
(´;ω;)html()でも試した
Stringに改行コードが入ってるのがあかんらしい

676:デフォルトの名無しさん
11/05/26 22:21:38.06
$("#hoge").html("hoge<br />hoge") ならいくんじゃない?

677:デフォルトの名無しさん
11/05/26 23:40:50.91
1.2.6,1.5.2,1.6で試したがそんなのにはならんなー
ブラウザとjqueryのバージョンは何?あと再現できるコードを頼む

678:デフォルトの名無しさん
11/05/27 00:02:24.53
>>676
理由がわかりました

cgi から print "$(\"#hoge\").text(\"hoge\nhoge\")" で書き出してるわけだけど、
クライアントに返すソースが
$("#hoge").text("hoge
hoge")
になってた…

printする前に改行コードを\nから%0Aにリプレイスしてから、
javascript側のunescapeで改行コードに戻してやったらうまくいった

だがIEは失敗。なぜかラインフィードが半角スペースにデコードされとる
キャリッジリターンした時だけ何故かIEでもちゃんと改行される
IEしね

679:デフォルトの名無しさん
11/05/27 00:06:50.21
>>677
>>678 の通りです><
cgiからprintでjavascriptを書き出してるのが原因でした…
ちなみにjQueryは1.4.4つかってます

それにしてもIEは本当に問題児だ
だいっ嫌いこんな糞重くてバグだらけのブラウザ

680:デフォルトの名無しさん
11/05/27 00:24:31.14
%0Aより\\nとしてやる方がいいんじゃねーの?

681:デフォルトの名無しさん
11/05/27 01:04:32.17
\\n\\rじゃね?

682:デフォルトの名無しさん
11/05/27 01:26:48.08
|ω・`)おおうっ…そっちの方が美しいですね

>>680さんの通りにしたら、火狐、Chrome ではうまくいきましたが、
やはりIEでは改行されずに\nが半角スペースになってしまいました…

>>681さんはWindowsの改行コードですね
IEではうまく行きましたが、今度は火狐、Chrome が\rで改行、\nで改行と
認識してしまって二重改行になっちゃいました…
あれ?Windowsの改行コードって\\r\\nじゃなかった?と思いやり直したら
火狐、Chrome はうまくいって、IEは二行目以降の行の最初に半角スペースが入り失敗…

IE、火狐、Chrome できちんと改行されるのは\\rにした時だけでした
なぜだろうななんか気持ち悪い
IEがおかしいってのだけはわかる
あとは私の環境の問題かしら…

683:デフォルトの名無しさん
11/05/27 01:55:36.89
submitボタンが押されるとjqueryでtextareaを書き換えてからsubmitするようにしたのですが、
.clickで書き換え後val()をalertすると書き換わってるのですが、送信されるのは書き換わっていません。
どうするべきでしょうか?

684:デフォルトの名無しさん
11/05/27 03:10:17.39
textareaからフォーカスが離れたタイミングで書き換えておくか、データをAjaxで送信するか

685:デフォルトの名無しさん
11/05/27 16:32:25.17
|ω・`)>>682について勘違いをしてたので言及
ちゃんと調べてみたら、\\rでも\\nでも\\r\\nでもIEは改行されてなかった…

-------------------------------------------
<textarea id="hoge"></textarea>
-------------------------------------------
原因は$("#hoge").html(String)でStringに入ってるすべての改行コードがIEでは無視されてしまってた(.text()も同じ)
jQueryのhtml()がアカンのかと思い、document.getElementById("hoge").innerHTML(String)
で試したけど、やはりIEが改行コードを無視する

valueを書き変えたらどうかと試してみたら、
$("#hoge").attr("value", String) とすると改行がIEでもちゃんと反映された
他のブラウザもOK。

という事で解決しました
あどヴぁいす下さった皆さんどうも|ω・`ノシ

686:デフォルトの名無しさん
11/05/27 17:05:53.52
$("#hoge").val("foo\nbar\nbaz");

687:デフォルトの名無しさん
11/05/27 17:44:05.35
>>686
|ω・`)あぅ…無知ですた

688:654
11/05/30 08:06:22.13
>>658
>656のaaaaの部分だけ(やccccの部分だけ)をDOMにせずjQueryオブジェクトのまま取得したり書き換えたりしたいってことです
レスが遅れてすみません

689:デフォルトの名無しさん
11/05/30 16:48:44.24
うへ

690:デフォルトの名無しさん
11/05/30 17:01:57.42
>688
そういうときは変更の対象となる部分をspanの中に入れるから普通は困らないんだけど。
元々のHTMLは変更できないんだよね、きっと。


691:654
11/05/30 18:34:48.02
> 元々のHTMLは変更できないんだよね、きっと。
はい
HTMLは変更できません
つまりテキストノードと要素ノードが共存している場合のテキストノードはjQueryオブジェクトのまま取得・設定できないってことですか

692:デフォルトの名無しさん
11/05/31 13:03:23.96
<div id="aaa"><div id="bbb">test</div></div>

というHTMLに対して

$("#aaa").html()

で<div id="bbb">以下の要素のHTMLテキストが取れるけど
$("#aaa")から<div id="aaa">以下のHTMLテキストを直接取得する方法ってある?

親要素を作って$("#aaa")をappendして.html()で取得するって方法はできたけど
できれば直接取得したい。

693:デフォルトの名無しさん
11/05/31 13:24:13.76
>>692
Fx 対応してないけど outerHTML

694:デフォルトの名無しさん
11/05/31 17:58:05.46
>>693
サンクス
jQueryでブラウザ依存吸収してほしいね。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch