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

みんなの評価 :
レスフィルター : (試験中)
勉強にもなるのでもうしばらく続けてほしい
他に質問なり何なりが飛んできてるのにやってたらどうかと思うけど
他に質問なり何なりが飛んできてるのにやってたらどうかと思うけど
call-by-value:組み込み型
call-by-sharing:オブジェクト
call-by-reference:関数の返値として参照を返すのは仕様上認められている
ただ、現実そういう実装はない(flanaganの本に書いてある)
call-by-sharing:オブジェクト
call-by-reference:関数の返値として参照を返すのは仕様上認められている
ただ、現実そういう実装はない(flanaganの本に書いてある)
call-by-sharingってCで言うところのポインタ渡すのと同じって考えればいいかな?
それをcall by sharing/call by object/call by object-sharingと呼ぶそうな
document.evaluateの使い方?ついて質問です
xhrとかでhtmlを取得した値をDOMにしてからcontextNodeに指定し
var dom = document.createElement("HTML");
dom.innerHTML = res.responseText;
document.evaluate(xpath,dom,null,7,null)
としてdomの中からid hoge を取得する時
firefoxだとid('hoge')で取得できるのですが
chromeの6.0以降だとid('hoge')では取得できません
仮にidがついてるのがdiv要素だとして//div[@id="hoge"]だと取得できます
これはcontextNodeの使い方がそもそも間違ってるのでしょうか・・?
それともevaluateの実装の違いによる問題なのでしょうか・・・
xhrとかでhtmlを取得した値をDOMにしてからcontextNodeに指定し
var dom = document.createElement("HTML");
dom.innerHTML = res.responseText;
document.evaluate(xpath,dom,null,7,null)
としてdomの中からid hoge を取得する時
firefoxだとid('hoge')で取得できるのですが
chromeの6.0以降だとid('hoge')では取得できません
仮にidがついてるのがdiv要素だとして//div[@id="hoge"]だと取得できます
これはcontextNodeの使い方がそもそも間違ってるのでしょうか・・?
それともevaluateの実装の違いによる問題なのでしょうか・・・
jQueryのプラグインでclickイベントで動くものがある場合に
プラグイン上でclickイベントを動作させた後で
独自のclickイベントを実行させたいのですが、
その場合はプラグイン内のclickイベントの内容を
改造するしかないのでしょうか
元のhtml上で
$("#○○○").click(
function() {
alert("OK");
});
等と書いてもプラグインのclickイベントに食われてるようです。
なら
$("#○○○").mouseup(
function() {
alert("OK");
});
とやってみたのですが、逆にプラグイン側のイベントを食ってしまいました
プラグイン上でclickイベントを動作させた後で
独自のclickイベントを実行させたいのですが、
その場合はプラグイン内のclickイベントの内容を
改造するしかないのでしょうか
元のhtml上で
$("#○○○").click(
function() {
alert("OK");
});
等と書いてもプラグインのclickイベントに食われてるようです。
なら
$("#○○○").mouseup(
function() {
alert("OK");
});
とやってみたのですが、逆にプラグイン側のイベントを食ってしまいました
>>908
Chromeの他、Opera、Safariも同様の動作で、Firefox(の3.5以上)だけが
本来のDOMツリーに属してないDOMにもid関数を使える。仕様的には未定義だった気がする。
各ブラウザでid関数を使えるようにするのは結構面倒で、なるべく簡単書いてみると
var html_text = 'HTML<p>hoge<p>fuga<span id="a">aaa</span>';
var doc = document.implementation.createDocument(null, 'html', null);
var body = document.createElement('body');
body.innerHTML = html_text;
doc.documentElement.appendChild(doc.adoptNode(body));
console.log(doc.evaluate('id("a")',doc,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue);
こんな感じ。
最近ならquerySelector使うほうが断然楽だね
Chromeの他、Opera、Safariも同様の動作で、Firefox(の3.5以上)だけが
本来のDOMツリーに属してないDOMにもid関数を使える。仕様的には未定義だった気がする。
各ブラウザでid関数を使えるようにするのは結構面倒で、なるべく簡単書いてみると
var html_text = 'HTML<p>hoge<p>fuga<span id="a">aaa</span>';
var doc = document.implementation.createDocument(null, 'html', null);
var body = document.createElement('body');
body.innerHTML = html_text;
doc.documentElement.appendChild(doc.adoptNode(body));
console.log(doc.evaluate('id("a")',doc,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue);
こんな感じ。
最近ならquerySelector使うほうが断然楽だね
ライブラリ類を使う必要性を感じないのだけど、
トレンド的にはやっぱ使うべきなのかね。
なんつーか、ライブラリはコードが濁って本質が見えなくなる気がする。
トレンド的にはやっぱ使うべきなのかね。
なんつーか、ライブラリはコードが濁って本質が見えなくなる気がする。
仕事じゃ開発効率が大切だからねえ。
勉強が目的ならライブラリは後回しにするべき。
勉強が目的ならライブラリは後回しにするべき。
>>911
なるほど・・・
Chromeの5.0.xまでは同じソースコードで取れてたので謎でした
id関数は//*[@id="hoge"]とかに置き換えるほうが楽なのかな・・・
そしてchromeやfirefoxじゃとれる
"//a or //b"といったxpathでbooleanの結果が取れなかった・・・
この書き方自体が変なのかな・・・
なるほど・・・
Chromeの5.0.xまでは同じソースコードで取れてたので謎でした
id関数は//*[@id="hoge"]とかに置き換えるほうが楽なのかな・・・
そしてchromeやfirefoxじゃとれる
"//a or //b"といったxpathでbooleanの結果が取れなかった・・・
この書き方自体が変なのかな・・・
if (entry.title.match(/.*(PR:|新しい語句).*/mi) == null) {
こんな感じで
mは改行への対応
iは大文字小文字問わず
こんな感じで
mは改行への対応
iは大文字小文字問わず
バッチリ動きました!
miではなくmとiだったんですね・・・もっと勉強します。
本当に有難うございました
miではなくmとiだったんですね・・・もっと勉強します。
本当に有難うございました
$がいやならidget('foo')ってかけるように定義すればいいだけなんじゃ?
$だってjavascriptの文法で決められた、利用出来る識別子じゃん
$だってjavascriptの文法で決められた、利用出来る識別子じゃん
$id("fooooooooooooooooooooooooooo")
$xp("//a")
$css("a > b")
こんな感じならいいということか
$xp("//a")
$css("a > b")
こんな感じならいいということか
ES3 7.6 "ドル記号は機械的に生成されるコード中のみの使用を意図される。"
ライブラリが乱用しだしたからかどうか知らないがES5でこの文言は消えたけど
ライブラリが乱用しだしたからかどうか知らないがES5でこの文言は消えたけど
他言語の宿題スレ的な質問が不適当でしたらすみません。
・入力としてプレーンテキストを受け取る
・リンクとして張るべき文字列(http/https スキームで良いです)
アンカー付きの HTML にして返す
といった処理はどうすればよいでしょうか。
Web メールのビューアあたりでよくありそうな処理ではないか…と思っているのですが…
・入力としてプレーンテキストを受け取る
・リンクとして張るべき文字列(http/https スキームで良いです)
アンカー付きの HTML にして返す
といった処理はどうすればよいでしょうか。
Web メールのビューアあたりでよくありそうな処理ではないか…と思っているのですが…
>>917
Chrome5では動いてたんだ…。動かない気がするけどなぁ。
実行している元のページ上にid="hoge"な要素があって、そっちを取得してた可能性も…。
ちなみに //*[@id="hoge"] も .//*[@id="hoge"] と相対パスにしておかないと↑と同じことに。
> "//a or //b"といったxpath
"//a | //b" かな。
Chrome5では動いてたんだ…。動かない気がするけどなぁ。
実行している元のページ上にid="hoge"な要素があって、そっちを取得してた可能性も…。
ちなみに //*[@id="hoge"] も .//*[@id="hoge"] と相対パスにしておかないと↑と同じことに。
> "//a or //b"といったxpath
"//a | //b" かな。
突然すいません
http://xn--5usq05i.com/
↑このサイトの様に、ページを移動せずにAPIの検索結果のソートを変更していくのはどうしたらいいんでしょうか?
全パターンを最初に読み込んで表示を切り替えてるだけのようには思えないんですけど・・・
http://xn--5usq05i.com/
↑このサイトの様に、ページを移動せずにAPIの検索結果のソートを変更していくのはどうしたらいいんでしょうか?
全パターンを最初に読み込んで表示を切り替えてるだけのようには思えないんですけど・・・
>>934,935
リクエストをサーバに投げるというのは、ボタンをクリックするとパラメーターを送ってその条件に応じたapiを
javascriptでパースして表示しているということでしょうか?
それだとブラウザでは表示されても、HTMLソースに表示されなくないでしょうか?
リクエストをサーバに投げるというのは、ボタンをクリックするとパラメーターを送ってその条件に応じたapiを
javascriptでパースして表示しているということでしょうか?
それだとブラウザでは表示されても、HTMLソースに表示されなくないでしょうか?
alertを挟んでデバッグしてみた結果、
Firefox,Chromeの場合、
innerHTMLでは、フォーム部品(テキストボックスなど)の入力内容が、
属性valueの値として取得できないようです。
IEではちゃんと、innerHTMLで、valueが補完された状態で出てくるので、
その行の各セルがどんな内容だろうと、
上で書いたswapRow()メソッドで、ゴッソリ入れ替えができるのですが。
Firefox,Chromeで同じようなことをする場合、
innerHTMLで見ないで中身のアイテムを参照し、
document.getElementsByName("text_" + r1).item(0).value
のようにすれば個々のvalueを正しく参照できるようですが、
縦列のアイテムの種別ごとに特別にコードを書かないといけないため、かなり冗長することになります。
縦列の数が多いので、
できればIEで成功しているような「Rowを内容も含めてゴッソリ入れ替え」ができれば良いのですが、
何か良い方法はありませんか?
Firefox,Chromeの場合、
innerHTMLでは、フォーム部品(テキストボックスなど)の入力内容が、
属性valueの値として取得できないようです。
IEではちゃんと、innerHTMLで、valueが補完された状態で出てくるので、
その行の各セルがどんな内容だろうと、
上で書いたswapRow()メソッドで、ゴッソリ入れ替えができるのですが。
Firefox,Chromeで同じようなことをする場合、
innerHTMLで見ないで中身のアイテムを参照し、
document.getElementsByName("text_" + r1).item(0).value
のようにすれば個々のvalueを正しく参照できるようですが、
縦列のアイテムの種別ごとに特別にコードを書かないといけないため、かなり冗長することになります。
縦列の数が多いので、
できればIEで成功しているような「Rowを内容も含めてゴッソリ入れ替え」ができれば良いのですが、
何か良い方法はありませんか?
http://kjirou.sakura.ne.jp/wiki_mirror/index.php?a%2FPHPer%A4%CE%B0%D9%A4%CEJavaScript%B2%F2%C0%E2%20-%20%A5%AF%A5%E9%A5%B9%A4%CE%C4%EA%B5%C1
ここのthisの説明にあるけど、thisってダイナミックスコープの変数なんですか?
ここのthisの説明にあるけど、thisってダイナミックスコープの変数なんですか?
そもそも変数じゃないし。
本人が理解している内容を、正しい言葉で表現できていないだけかと。
本人が理解している内容を、正しい言葉で表現できていないだけかと。
var new_div = document.createElement('div') などしたあとに、 new_div.id = "div_id" などできますが、この new_div に生えているメソッド一覧はどうすれば確認できますか?
var str = '';
for (var prop in new_div) {
str += prop + ': ' + new_div[prop] + '\n';
}
alert str;
for (var prop in new_div) {
str += prop + ': ' + new_div[prop] + '\n';
}
alert str;
「生えているメソッド」なんて言い方、初めて聞いた。
自分の髪もユーザ定義で生やすことできないかなぁ。
自分の髪もユーザ定義で生やすことできないかなぁ。
var 毛根達 = 人間.evaluate(".//毛根",頭皮,null,7,null);
if (毛根達.resultType != 7 || 毛根達.snapshotLength == 0) {
return "毛根死んでるので手遅れです";
}
var 毛根の数 = 毛根達.snapshotLength;
for (var i = 0; i < 毛根の数; i++) {
var 毛根 = 毛根達.snapshotItem(i);
var has毛 = false;
for (var j = 0; j < 毛根.childNodes.length; j++) {
var 毛根についてるもの = 毛根.childNodes[j];
switch (毛根についてるもの.nodeValue) {
case "フケ":
毛根.removeChild(毛根についてるもの);
break;
case "毛":
has毛 = true;
育毛剤(毛根);
break;
default:
洗浄(毛根);
}
}
if (has毛 == false) {
毛根.appendChild(人間.createElement(毛));
}
}
こんな感じじゃだめか
if (毛根達.resultType != 7 || 毛根達.snapshotLength == 0) {
return "毛根死んでるので手遅れです";
}
var 毛根の数 = 毛根達.snapshotLength;
for (var i = 0; i < 毛根の数; i++) {
var 毛根 = 毛根達.snapshotItem(i);
var has毛 = false;
for (var j = 0; j < 毛根.childNodes.length; j++) {
var 毛根についてるもの = 毛根.childNodes[j];
switch (毛根についてるもの.nodeValue) {
case "フケ":
毛根.removeChild(毛根についてるもの);
break;
case "毛":
has毛 = true;
育毛剤(毛根);
break;
default:
洗浄(毛根);
}
}
if (has毛 == false) {
毛根.appendChild(人間.createElement(毛));
}
}
こんな感じじゃだめか
「生えている」はあんまり聞かないけど、「メソッド/プロパティを生やす」ならたまに使うかな
>>947
3 行目で return する状況なのです;;
3 行目で return する状況なのです;;



類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.89 + (1001) - [97%] - 2011/9/4 4:17
- + JavaScript の質問用スレッド vol.74 + (1001) - [97%] - 2009/12/1 6:08 ○
- + JavaScript の質問用スレッド vol.75 + (1001) - [97%] - 2010/1/23 1:07 ○
- + JavaScript の質問用スレッド vol.76 + (1001) - [97%] - 2010/3/10 4:02
- + JavaScript の質問用スレッド vol.77 + (1001) - [97%] - 2010/5/8 19:06
- + JavaScript の質問用スレッド vol.78 + (1001) - [97%] - 2010/6/25 3:53
- + JavaScript の質問用スレッド vol.99 + (1001) - [97%] - 2012/5/7 4:32
- + JavaScript の質問用スレッド vol.129 + (981) - [95%] - 2016/5/5 8:16
- + JavaScript の質問用スレッド vol.119 + (1002) - [95%] - 2014/10/3 15:30
- + JavaScript の質問用スレッド vol.139 + (1001) - [95%] - 2019/5/27 15:15
- + JavaScript の質問用スレッド vol.109 + (1001) - [95%] - 2013/10/7 13:16
- + JavaScript の質問用スレッド vol.129 + (926) - [95%] - 2017/7/27 13:45
- + JavaScript の質問用スレッド vol.93 + (1001) - [95%] - 2011/12/10 18:31
- + JavaScript の質問用スレッド vol.98 + (1001) - [95%] - 2012/4/9 14:46
- + JavaScript の質問用スレッド vol.97 + (1001) - [95%] - 2012/3/1 3:31
- + JavaScript の質問用スレッド vol.95 + (1001) - [95%] - 2012/1/17 4:16
- + JavaScript の質問用スレッド vol.94 + (1001) - [95%] - 2012/1/8 15:46
トップメニューへ / →のくす牧場書庫について