のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,644,937人
昨日:no data人
今日:
最近の注目
人気の最安値情報

元スレ+ JavaScript の質問用スレッド vol.101 +

JavaScript覧 / PC版 /
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter

251 = :

var a='<script type="text/javascript">var b='';</script>';
$("body").append(a);

とやっても、scriptがbodyに入ってくれない(SafariのWebインスペクタで確認)
これ実行させる方法ないの?

252 = :

b=の後がおかしくね?
あと入って無くても実行されてたりするがalertとかで試したか?

255 = :

>>252
あぁ、いろいろ調べたら、この場合だとscript実行されるけど、
ソースには見えないそうです。
試しに
var a='<script type="text/javascript">alert("check")</script>';
としたらアラートでました。

いちおう解決、なのかな…。

258 = :

解決した件に間違った解決方法をレスする奴って何なの?

259 = :

var obj = {'a':'b','c':['a','a']};
これをそのまま{'a':'b','c':['a','a']}ていう文字列がほしいです
{a:'b'}のように左側の値に''が入ってない場合でも
''もしくは""がつくようになってくれるといいのですが

obj.toSource()では左側のクオテーションが抜けてしまい
JSONとして使えないのでどうにかならないでしょうか?

260 = :

ライブラリ使うが吉
json2のJSON.stringifyとか

261 = :

>>260
ありがとうございます
IE8でも使えるようですが
なぜか自分の用意したXP SP3のIE8では動きませんでした
Internet Explorer 8 Beta 2からと書いてますがバージョン違いかもしれないですね
とはいえwindows updateに一覧が出てない・・・
ちょっと作るのが面倒ですがxmlも検討してみます

263 = :

すみません↑の質問取り消します
色々と勘違いしてました

265 = :

俺はウン個だがエリートウン個だ
お前らのような下級ウン個とは格が違う

266 = :

次スレ立ててあっちでやれ

267 = :

画像をクリックすると、クリックした画像を画面に固定するようにしたいのですが、
下記のコードだと1つの画面しか固定できません

<script type="text/javascript">
$(function(){
$('#kotei').click(function(){
$('#imgbox').append($('<img>').attr({'src':$(this).attr('src')}))
});
});
$('#imgbox img').live('click', function(){
$(this).remove();
});
</script>
<div id="imgbox" style="position:fixed; bottom:0px; left:10px; z-index:10"></div>

これだと一画面中に

<img 省略 id="kotei">  ①


<img 省略 id="kotei">  ②

とあった場合、①の画像は固定されますが②の画像(もしくはそれ以降の画像)
に対してコードが働きません

id="kotei"とつけたものはクリックすると全て固定対象にしたいのですが
どうすればいいですか?

①をクリックしたら①のみが固定され、次に②をクリックしたら②のみを固定する
という動作をさせたい

よろしくお願いします

268 = :

>>229 分かる方いませんか?

269 = :

2chには居ません。マジレス

270 = :

>>267
ネーム属性かクラス属性使って配列でゲットして周回処理

271 = :

あるが教えない
自分で調べろゴミカス

272 = :

ゴミ

273 = :

>>270
調べ中ですが、もうちょっとヒントを・・・

ループ回して変数を増やして、それをid名の配列にするって事ですか?
C言語しか経験にですが

forループ
{
i++; 的なの
}

$(function(){
$('#kotei[i]').click(function(){
$('#imgbox').append($('<img>').attr({'src':$(this).attr('src')}))
});
});
$('#imgbox img').live('click', function(){

↓画像設定
<img="" id="kotei1">
<img="" id="kotei2">
<img="" id="kotei3">


こういう事ですか?

274 = :

>>273
マークアップ的により好ましいclass属性で説明すると

<img="" class="kotei">
<img="" class="kotei">
<img="" class="kotei">

って同一class属性のimg要素を並べて
var elm = [];
elm = document.getElementsByClassName("kotei");
とやればelmがclass属性koteiを持ったノードの配列になる
適当にカウンタ的なのを用意してこれをループでぶん回せばok

getElementsByClassNameは実装に難があるから使いたくないのなら
elm = document.getElementsByTagName("img");
でimg要素のノードを配列に納めてから
getAttribute("class",0)でclass属性を取得(ただしIEにバグがあるからこう書く)

適当なループ条件
var classattribute = elm[i].getAttribute('class',0) || elm[i].getAttribute('className',0) || '';

class属性が一致すれば
if (classattribute == "kotei"){
該当するelm[i]のノードを適当な配列に入れるなりメソッドに追加するなり
}

あとは適当に

275 = :

>>274
横から失礼。教えてください。

>var classattribute = elm[i].getAttribute('class',0) || elm[i].getAttribute('className',0) || '';
これは、
var classattribute = elm[i].className;
のようにしてもいいんですよね?

getAttributeを使うのは統一感というか、より正当なDOM操作だからですか?

276 = :

統一感ってか質問だったから馬鹿丁寧にやっただけ
classNameプロパティ使えるならもちろんそれでいいんじゃね?

277 = :

parentNodeが見つからないって言われて
バグの箇所がわからなくて困ってます
ある処理を行うと見失うのですが原因がさっぱり・・・
こういう時ってどうやって原因見つけるのでしょう?
もうかれこれ半日はまって疲れてきました

278 = :

半日もはまるならすっごいスパゲッティーなんだろうなぁ

279 = :

>>267
IDはユニークな物であり、HTML中に一つしか存在しないのが好ましい

280 = :

>>274
ありがとうございます。

正直今のレベルではお話にならないようなので勉強し直してきます。
正直ほとんど理解できませんでした・・・すみません。


>>279
なるほど、了解しました。
idやめてname使うようにします。
ありがとうございました。

281 = :

はあ?
せっかく、class使うといいよ、ってアドバイスしてもらってるんだろ?
>>267で、「class="kotei"」として、「$('.kotei')」とすれば、appendの部分はいけるんじゃね?

それより、ライブラリを使っているなら、その前提をきちんと書けと暗に言われてるんだろうな

282 = :

後出しはクズ

283 = :

ま、ライブラリなんて基本がちゃんとできてる奴が使うもんだからな

284 = :

ニコニコ動画のZeroWatchをキーボードで操作するGreaseMonkeyスクリプト
http://userscripts.org/scripts/show/136812
(.jsファイルはエンコード:UTF-8 改行方法:CR+LFで保存。)
を作っているのですが、

これをfirebugで動作確認しようとすると
・改行が削除されて1行になってしまう。
・日本語が表示できない。
のようになってしまい。デバッグが非常にやりにくいです。
これを他のスクリプトのように、改行された状態でfirebugに表示することはできないでしょうか?

*ZeroWatchはプレアカでないと使えないので、一般アカウントの場合は
こちらの原宿バージョン用のスクリプト
http://d.hatena.ne.jp/dionore/20081213/1229175974
で同様の現象が確認できます。

OS:Windows7 home premium 64bit
firefox:ver.13.0.1
firebug:ver.1.9.2

285 = :

自分で改行してなくてエスケープしてるだけじゃないか

286 = :

>>285
エスケープしないようにするには
どこをどのように修正すればいいのでしょうか?

287 = :

アンエスケープして戻せばいいんじゃない?

288 = :

>>287

>>284
を例にどう修正すればいいか説明してもらえるとありがたいのですが。


location.href = 'javascript:(' +
 function(){
  (function(unsafeWindow)
   {
    // 実行するコード
   }
  )(this.unsafeWindow || window)
 }.toString()
+ ')()';

289 = :

// 実行するコード
の部分だけで機能組み立てて検証してから仕上げにlocationに叩き込め

291 = :

部分を組み上げて全体を仕上げるのがプログラミング

292 = :

>>291
このケースで部分を検証できる具体的な方法を教えて下さい。

293 = :

具体的、ねぇ

function hello(){
return "hello";
}
function world(){
return world;
}
function say() {
alert (hello() + world());
}

say()を実行してハローワールドとアラートを出したい

hello()とworld()って部品を作ろう

hello()だけ実行してみよう

よし、この部品はオッケー

world()だけ実行してみよう

あ、クォーテーションマーク忘れてた

修正

部品が整ったから次はsay()だな

オブジェクト指向の言語はこうやって上から設計したら下から作り上げていくんだよ

294 = :

>>293
そんなことは理解してます。
今回のスクリプトの作成でもそうやって作ってます。

でも、全体に組み上げてから調整や修正が必要になった時に
デバッグ環境で各行ごとのブレークができない状況で、
どうやって検証するのか?という話です。

また、部分部分に分解して確認し直すんですか?
全体に組み上げたことで発生する問題はどうやって検証するのですか?

一度、あなたの言ってる方法が
>>284でできるかやってみてくださいよ。

295 = :

物凄い後だしだな

296 = :

284は質問者にこんな態度とられても懇切丁寧に教える人なのだろうか
内容はまともなんだから聞き方一つなのに

297 = :

これは例の嵐だよ。暇なら相手してもいいけど。

298 = :

>>295
>>284 の内容をちゃんと理解できていれば後出しでないことは分かるはずですが。

>>296
>>287のアンエスケープする方法を答えるか、
今回のケースではそれが不可能なのであれば不可能と答えてもらえれば済む話なんですが、
質問内容が理解してもらえてないのか、どんどん話がズレていってますね。
いらいらした私が悪いのもあるのでしょうけど。

299 = :

なんでブックマークレットみたいな書き方になってるんだ?

300 = :

>>284
Chromeのfirebugだったらpretty printっていう{}のアイコンのぼたんがあって
それ押したらインデントとか改行を入れて表示してくれる。狐もあるんじゃないの?


←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

類似してるかもしれないスレッド


トップメニューへ / →のくす牧場書庫について