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

私的良スレ書庫

不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

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

JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニュー
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
レスフィルター : (試験中)
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
101 : Name_Not - 2011/06/25(土) 10:13:59.45 ID:??? (+35,+29,-29)
>>99
もちろんだ
だがフラグメントの子孫を辿って子孫のID修正してるコードなんか
ほとんど見たことない
102 : Name_Not - 2011/06/25(土) 10:49:31.94 ID:??? (+27,+29,-7)
質問の趣旨から外れるけど、ID重複の指摘ぐらいはあってもいいんじゃない?
103 : Name_Not - 2011/06/25(土) 11:03:07.58 ID:??? (+33,+29,-13)
>>101
「見たことがない=やっていい」ではないと思うけど…
イベントフローの話しかしちゃいけないわけでもないし
104 : Name_Not - 2011/06/25(土) 11:07:46.67 ID:??? (-26,-29,-36)
cloneNode使ってる実例自体をほとんど見たことないんだけど、
JavaScriptのみで同じような部品を複数生成する場合、cloneNodeを使うメリットってあんまり無いよね?
105 : Name_Not - 2011/06/25(土) 11:08:42.56 ID:??? (-26,-30,-89)
function class(){
this.method1=1;
this.method2=2;
}
obj=new class();
alert(obj.method1);


obj=new class(100);って書いてこの100をthis.method1に代入する方法を伝授してください
106 : Name_Not - 2011/06/25(土) 11:24:45.26 ID:??? (+36,+30,-65)
>>103
「やっていい」と言った覚えはない、意見の捏造は止めてくれ
ID重複にしろ変な木構造にしろ、イベント設置側からはどうすることもできない場合がある
バブリングを利用すれば、そうした問題をひとまとめに、とりあえず後回しにして考えられる
まさに>>75の抱えている問題そのものだろ
107 : Name_Not - 2011/06/25(土) 11:30:37.74 ID:??? (-27,-30,-191)
DOM Level 3にはdocument.strictErrorCheckingとdocument.continuousValidityCheckingがある
if(node.canAppendChild(child)) node.appendChild(child);のように常時妥当性検証する
ID重複もチェックするはずで、強行してエラーになれば"error-handler"が呼ばれる

Firefox4で廃止されたstrictErrorCheckingってのはこれのことな
Webはこれを使わない、つまりエラーをなるべく許容する方向にいったわけだ
ならこっちも通常処理と例外処理をまとめて扱えるようにしといた方がいいだろ?

なんでエラーを許容するかと言えば前方互換性の問題がある
ここでIDが結構厄介なんだが、スレ違いなのでこれ以上書かない
108 : Name_Not - 2011/06/25(土) 12:14:08.18 ID:??? (+39,+30,-138)
>>106
あなたの意図がわかりにくかっただけ
>>97>>101の結論づけだと>>75を擁護しているように読めて気持ち悪い
本当は「イベントフローと関係ないから~だ」という意見があるわけでしょ?
「関係ない」で終わってるとその後に来るべき結論は読み手によってどうとでも解釈できる
「ID重複すべきではないが、イベントフローと関係ない」ならまず誤解は生じなかった
要するに何を否定したいのかがよくわからんのよ
「イベントフローと関係ない」なんて周知の事実でしょ?
事実だけ羅列して「後は自由に読み取れ」てことなら誤解されることも予想すべきだと思う
109 : Name_Not - 2011/06/25(土) 12:16:07.10 ID:??? (+25,+29,-3)
>>105に答えてやってから議論しててくれ
110 : Name_Not - 2011/06/25(土) 12:23:55.58 ID:??? (+34,+30,-129)
>>104
ループ処理で毎度ノードを生成する時、cloneNode の方がパフォーマンスがいい
その時、IDも重複するなら当然変えるべきだろう
子孫にわたってID変更するのは勿論だけど、何処に何の要素があるかは決まっているから cloneNode するわけで変えるべき要素も決まっているはず
だからそれほど難しい変更じゃない

「見たことがない」とか悪例を挙げるのは意味がない行為だと思う
悪例があるならそれをどうすれば改善されるかをアドバイスする方がもっと重要なはずだ
111 : Name_Not - 2011/06/25(土) 12:26:16.24 ID:??? (-28,-30,-103)
function class(){
this.method1=(0<arguments.length)?arguments[0]:1;
this.method2=2;
}
obj=new class(100);
alert(obj.method1);

>>105はたぶん説明不足だからスルーされてる
一応書いてみたけどこういう意図なのかどうかわからないから
どういう意図なのかとかコード以外の部分まで考えたのに
そういう意味じゃありませんとか言われたら凹む
から俺もスルーしたい
112 : Name_Not - 2011/06/25(土) 12:30:18.51 ID:??? (-28,-30,-95)
>>105
classは予約語だから名前を変える

function _class (num) { if (arguments.length > 0) { this.method1 = num; } }
_class.prototype = {method1:1, method2:2};
obj = new _class(100);
alert(obj.method1);
113 : Name_Not - 2011/06/25(土) 12:33:09.04 ID:??? (+32,+29,-20)
>>110
悩んだ経験のない奴に、それについてのアドバイスは理解できない
114 : Name_Not - 2011/06/25(土) 12:35:44.21 ID:??? (-27,-30,-65)
class A
{
public $method1;
function __construct($n){
$this->method1 = $n;
}

public function view(){
return $this->method1;
}
}

$obj = new A(100);
echo $obj->view();

PHPで書くとこういう事がやりたいのです
115 : Name_Not - 2011/06/25(土) 12:36:15.60 ID:??? (+12,+18,+2)
>>111>>112
ありがとうございます
116 : Name_Not - 2011/06/25(土) 12:54:14.87 ID:??? (+38,+30,-81)
>>108
ID重複はお前さんのように白黒はっきりできる話じゃないんだよ
ある時点、ある段階でvalidityが決まる、そしてDOMはその境界にまたがる
だから「価値判断」は曖昧にして「事実と対処」のみを話していたわけで
その辺は汲み取ってほしかったがな
117 : Name_Not - 2011/06/25(土) 13:11:32.98 ID:??? (-27,-30,-40)
             /)
           ///)
          /,.=゙''"/
   /     i f ,.r='"-‐'つ____   こまけぇこたぁいいんだよ!!
  /      /   _,.-‐'~/⌒  ⌒\
    /   ,i   ,二ニ⊃( ●). (●)\
   /    ノ    il゙フ::::::⌒(__人__)⌒::::: \
      ,イ「ト、  ,!,!|     |r┬-|     |
     / iトヾヽ_/ィ"\      `ー'´     /
118 : Name_Not - 2011/06/25(土) 13:17:13.67 ID:??? (+24,+29,+0)
120 : Name_Not - 2011/06/25(土) 13:29:28.94 ID:??? (+27,+29,-4)
このスレは話を小難しくしたい奴が多いからな。ある程度は仕方ない。
123 : Name_Not - 2011/06/25(土) 13:43:12.35 ID:??? (+17,+29,-1)
>>119
れpぁせ
125 : Name_Not - 2011/06/25(土) 13:45:46.26 ID:??? (-9,-30,-54)
>>103,106は「ID重複を避けられないパターンがある」といってるみたいだけど本当にそう?
element.querySelectorAll('[id]'); で要素を抽出してID書き換えれば済むような簡単な話に読めるけど
126 : Name_Not - 2011/06/25(土) 13:46:44.42 ID:??? (+23,+27,-5)
挿入してなかったら、ID が重複してても標準仕様的には大丈夫なんでしょうか
127 : 125 - 2011/06/25(土) 13:54:37.55 ID:??? (+30,+29,-15)
ごめん、>>125のレスアンカーは>>101,106の間違いだった
128 : think49 - 2011/06/25(土) 14:20:51.00 ID:??? (-20,-30,+0)
>>126
「ID が重複してはいけない」は XML または HTML の規定から来ています。
http://w4ard.eplusx.net/translation/W3C/REC-xml-20081126/#sec-attribute-types
http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/struct/global.html#h-7.5.2
http://www.whatwg.org/specs/web-apps/current-work/multipage/elements.html#the-id-attribute

CSS や JavaScript にID重複禁止の規定はありませんが、(X)HTML文書がID重複しないことを前提に仕様が規定されています。

例えば、DOM Level 2 Core 規定の getElementById には "複数の要素がこのIDをもつ場合には,その振る舞いは定義されない。" とあります。
ID が重複しているHTML文書における getElementById はどのような挙動になるかわかりません。
ひょっとしたら何も返さない実装(ブラウザ)があるかもしれませんが、その振る舞いは DOM 規定に反していません。
ですので、DOM Level 2 Core 仕様に準ずるならば意図的に ID を重複させるHTML文書に対して getElementById を使用すべきではないことになります。
http://www.y-adagio.com/public/standards/tr_dom2_core/core.html#ID-getElBId

HTML文書を JavaScript が扱うDOMオブジェクトであらわすと [object HTMLDocument] に相当します。
HTML に準拠しなければならないのは [object HTMLDocument] だけですので [object HTMLDocument] に挿入されていないノードに関しては ID が重複していても問題ありません。
また、複数の [object HTMLDocument] が存在する場合にもそれぞれの [object HTMLDocument] の中でIDが重複しなければ問題ありません。
129 : Name_Not - 2011/06/25(土) 14:21:59.43 ID:??? (+27,+29,-4)
質問と回答以外は黙っててくれないかな
130 : Name_Not - 2011/06/25(土) 14:28:05.73 ID:??? (+8,+18,+2)
>>128
ありがとうございます
132 : Name_Not - 2011/06/25(土) 14:36:52.36 ID:??? (+18,+29,-1)
>>128
なんかいろいろ違う
134 : Name_Not - 2011/06/25(土) 14:40:28.86 ID:??? (-29,-30,-16)
>>124
document.querySelectorAll(".area>span") をforループで回してelement.dataを参照

>>132
詳しく
135 : Name_Not - 2011/06/25(土) 14:41:26.39 ID:??? (+24,+29,-2)
>>134
皆あきてるし長くなるから無理
136 : Name_Not - 2011/06/25(土) 14:45:03.99 ID:??? (+27,+29,-4)
否定するだけで何も言わない人はかなり迷惑
137 : Name_Not - 2011/06/25(土) 14:49:12.24 ID:??? (+27,+26,-2)
書けば書いたでイミフだの長文うざいだの言われるからな
138 : Name_Not - 2011/06/25(土) 14:52:39.60 ID:??? (+31,+29,-2)
>>137
俺はイミフとか長文うざいとか言わないから書いてよ
139 : Name_Not - 2011/06/25(土) 14:55:29.22 ID:??? (+22,+29,+0)
ここから>>1000まで多数決
141 : Name_Not - 2011/06/25(土) 14:58:08.79 ID:??? (+6,+18,+0)
うざす
142 : Name_Not - 2011/06/25(土) 15:00:31.79 ID:??? (+27,+29,-10)
回答は一段落したしいいんじゃない?
違うなら違うで書いてほしい
143 : Name_Not - 2011/06/25(土) 15:05:15.46 ID:??? (+19,+21,+0)
むしろ書かないことでイミフになる件w
144 : Name_Not - 2011/06/25(土) 15:12:11.58 ID:??? (+27,+29,-2)
えーと、あれだ
あきらめたらそこで試合終了だよ
145 : Name_Not - 2011/06/25(土) 15:16:52.18 ID:??? (+27,+29,-6)
仕様を心行くまで語るスレでも作っとけ
146 : Name_Not - 2011/06/25(土) 15:18:13.15 ID:??? (+22,+29,-16)
典型的なダメ出し君であった。
147 : Name_Not - 2011/06/25(土) 15:23:33.47 ID:??? (+16,+23,-4)
間違いにNOと言えない日本人
148 : Name_Not - 2011/06/25(土) 15:32:33.19 ID:??? (+18,+26,-1)
ここまで俺の自演
150 : Name_Not - 2011/06/25(土) 15:35:07.26 ID:??? (-21,-17,+1)
>>148
Noooooo!!!
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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