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

みんなの評価 :
351 = :
jQueryの事言ってるんじゃねえの?
353 = :
やってみればいいさ
355 = :
うっぜえ
357 = :
その話題はもう飽きた
358 :
Lightboxのように画像を表示したときに出てくる薄透明のあれってどうやるのでしょうか?
365 = :
先行実装の意味わかってるか?
366 = :
勝手実装
368 = :
そのサンプルでの定義とか、使っているライブラリの中で定義されてるんだろ。
javascript:alert(typeof $get);これでそれが定義されているのかわかるから
後は自分で調べれ。
369 = :
Googleの検索でYahoo Japanって検索した時にヤフーのメインページの
リンク以外にも、メール・ニュース・オークションとあるんですがあれは
どうすれば一般のウェブサイトにつけれますか?ご存知の方宜しくお願いします。
370 = :
すれち
371 = :
透過なら、3つまとめてやってるよ。
obj.style.filter="alpha(opacity=xx)";と
obj.style.MozOpacity=xx;と
obj.style.opacity=xx;の3つで。
2つめは念のために入れてたり。
372 :
JavaScriptを書くのに使える色分け表示できるエディタって何がいいですか?
375 :
>>368
ありがとうございます
376 = :
jQueryのAutocomplete Modを使いたいのですが
以下のようにinputが複数あり(実際にはもっと多数存在)、それらをクリックしたときに
jQuery Autocomplete Mod プラグインでオートコンプリートを実行したいのですが
id_nameは取得出来ていますがAutocomplete Modは全く動いてくれません・・・
jsファイルのauto_search(obj)をどのように修正すれば動くようになりますでしょうか。
ちなみに、onclickのイベントしたいのは、autocompleteArrayを条件により変更したいためになります。
たとえば・・・Local1は州、Local2はLocal1で選択した州に存在する町のような形です。
html側(jquery.autocomplete.js、jquery-1.4.2.min.jsは読み込み済み)
<body onload="init()">
<table id="tbl">
<tr><td><input type="text" id="Local1" value=""></td></tr>
<tr><td><input type="text" id="Local2" value=""></td></tr>
</table>
377 = :
開業が多すぎると言われてしまったのでhtmlに対するjsファイルはいかになります。
function init(){
var e=document.getElementById('tbl').getElementsByTagName('input');
for (var i=0; i<e.length; i++){e[i].onclick=function(){auto_search(this)};}
}
function auto_search(obj){
var id_name = obj.getAttribute("id");
//
alert(id_name);//念のためalertでidが取得出来ているかチェック
var data_arr = new Array();
if(id_name=="Local1"){
data = ["Aberdeen", "Ada", "Adamsville", "Addyston","Adelphi", Adena","Adrian", "Akron"];
}else{//実際はDBへアクセスしLocal1のvalue値からarrayを作成予定
data = ["aaa","bbb","ccc"];
}
$(document).ready( function() {
$('#'id_name).autocompleteArray(data_arr);
});
}
378 = :
>>371
未だに火狐1.5未満を使ってる人が果たしているのかw
379 = :
>>377
最後の行を
$('#' + id_name).autocompleteArray(data_arr);
にすればいんじゃね?
レス読んでないけど。
380 = :
<div class="hoge"><p>で囲まれているspanタグのテキスト部分だけを取り出したいのですが、
-----------------
var str = "";
var spanTag = document.getElementsByTagName("span");
for(var i=0; i<spanTag.length; i++){
if(spanTag[i].parentNode.nodeName == "P" && spanTag[i].parentNode.parentNode.nodeName == "DIV" && spanTag[i].parentNode.parentNode.className == "hoge"){
str += spanTag[i].innerText + "\n";
}
}
alert(str);
-----------------
↑if文の条件をもっとすっきり書くことできますでしょうか?
jQueryを使うのは無しでお願いします。
■テストケース■
<div class="hoge"><p><span>OK1</span></p></div>
<div class="hoge"><p><span>OK2</span></p></div>
<div class="geho"><p><span>NG</span></p></div>
<div class="hoge"><span>NG</span></div>
<div><p><span>NG</span></p></div>
<p><span>NG</span></p>
■出力結果■
OK1
OK2
381 = :
jsファイルに一部記載誤り有り
var data_arr = new Array();
if(id_name=="Local1"){
data_arr = ["Aberdeen", "Ada", "Adamsville", "Addyston","Adelphi", Adena","Adrian", "Akron"];
}else{//実際はDBへアクセスしLocal1のvalue値からarrayを作成予定
data_arr = ["aaa","bbb","ccc"];
}
dataをdata_arrにしましたが動かず・・・
>379
情報ありがとうございます。
しかし、一瞬動いた!と思ったけど、IEだとオブジェクトを指定しろとのエラーがFirefoxのFirebugには
jsファイル自体が表示されない状況に陥ってしまいました・・・
もう少し、初めのjsファイル見直してみます
384 = :
ここはjQueryもokですか?
385 = :
それ用の専用スレでも別に立てろよ
387 = :
>>380
慣れてないから、もっといい書き方あるかもしれない
var str = "";
var it = document.evaluate('//div[@class="hoge"]/p/span/text()', document, null, XPathResult.ORDERED_NODE_ITERATOR_TYPE, null);
var text = it.iterateNext();
while (text) {
str += text.textContent + "\n";
text = it.iterateNext();
}
alert(str);
388 = :
とりあえず、data_arrの条件分岐をやめ
function auto_search(obj){
var id_name = obj.getAttribute("id");
//alert(id_name);
var data_arr = new Array("Aberdeen","Ada","Adamsville","Addyston","Adelphi","Adena","Adrian","Akron");
//alert(data_arr);
$(document).ready( function() {
$('#'+id_name).autocompleteArray(data_arr);
});
}
にして試してみましたが、IEではどちらかのalertを有効にすれば動きました。
Firefox、Operaではalertを有効にしても当たり前の事ながら動きません。
なぜIEのみalertが有効なら動くのかも分からず困りました。
それよりも
>385-386
一応Javascriptに関する事なのでOKかと思いましたがスレチだったでしょうか?
これ以上の質問はすれ違いなようでしたら>386ご紹介のスレに移動したいと思います。
389 = :
スレ見たけどひどいな
390 = :
とりあえず一応紹介したけど別にスレ違いでもないんじゃね
391 = :
>390
心強い言葉ありがとうございます。
さて肝心のものは、あれから悩み続けても進展無く、眠くて朦朧としてきただけのようです。
どなたか、解決への糸口のご教示、よろしくお願いいたします。
392 = :
>>391
jQuery使ったことの無い俺がなおしてやったよ。
body onloadはjQueryに変えた。気分で。
$(id_name).autocompleteArrayの部分は説明サイトからコピペ
Chromeでも動いたけど、挙動が不安定で安心できないな。
function auto_search(obj) {
var id_name = obj.getAttribute("id");
var data_arr = ["Aberdeen", "Ada", "Adamsville", "Addyston", "Adelphi", "Adena ", "Adrian ", "Akron "];
function findValue(li) {
if (li == null) return alert("該当する項目はありません");
if ( !! li.extra) var sValue = li.extra[0];
}
function selectItem(li) {findValue(li); }
function formatItem(row) {return row[0] + " (id: " + row[1] + ")"; }
function lookupLocal() {
var oSuggest = $('#' + id_name)[0].autocompleter;
oSuggest.findValue();
return false;
}
$(document).ready(function () {
$('#' + id_name).autocompleteArray(data_arr, { delay: 10, minChars: 1, matchSubset: 1, onItemSelect: selectItem, onFindValue: findValue,
autoFill: true, maxItemsToShow: 10
});
});
}
$(document).ready(function () {
var e = document.getElementById('tbl').getElementsByTagName('input');
for (var i = 0; i < e.length; i++) {
e[i].onclick = function () { auto_search(this); };
}
});
393 = :
>>380
SelectorsAPI+Array.forEachを使う方法
var str="";
Array.prototype.slice.call( document.querySelectorAll("div.hoge > p > span") ).forEach(function(e){
str += e.innerText + "\n";
});
alert(str);
395 = :
>392
ありがとうございます!!!
早速、jsファイルにそのままコピペしてローカルで試してみました。
alertを出せば即動くのに、alertを消すと読み込みに時間が掛かるのか
画面が表示しきってから1分程度放置すると動くようになりました。
もしや夜中の状態も、放置時間が短かったのか?
挙動不安定とのコメントがありますが、なんか私の環境の問題もあるみたいです。
onloadの件、確かにjQueryに書き換えられますね。
大変勉強になりました。
お忙しいところ糸口所か直していただき本当にありがとうございました。
396 = :
>>376
ほい
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<link rel="stylesheet" type="text/css" href="jquery.autocomplete.css" />
<script type="text/javascript" src="jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="jquery.autocomplete.js"></script>
<script type="text/javascript">
$(document).ready(function() {
var val = '', idx, arr1 = ['Tokyo', 'Kanagawa'],
arr2 = [['Adachi', 'Arakawa', 'Chiyoda', 'Edogawa', 'Katsushika', 'Shibuya'], ['Kawasaki', 'Yokohama']];
$('#local1').autocompleteArray(arr1).bind('keyup keydown blur update', function() {
if (val == (val = $(this).val())) return;
if ((idx = $.inArray(val, arr1)) != -1) $('#local2').autocompleteArray(arr2[idx]);
});
});
</script>
</head>
<body><input type="text" id="local1" /><input type="text" id="local2" /></body>
</html>
397 = :
>>394
testのプロパティにする意味が不明
そもそもtestが不明
書き方を問うならせめて動くコードにしてくれよ
398 = :
>>397さんどもっす
コードは↓のを丸写しに近いのですがだめですかね?
http://www.kuma-de.com/blog/2009-03-24/377
399 = :
それ機能説明用の抜粋だし
ついでに、なんのライブラリも読ませていない素のjavascriptで
なんの前置きもなく「クラス」という言葉を使った記事はマユツバ
400 = :
今はもう javascript でも「クラス」といえば一つのものが
代表されるんだから前置きも必要ないんじゃないかな。
それが厳密にクラスかどうかということは問題じゃなくてね。



類似してるかもしれないスレッド
- + 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.78 + (1001) - [97%] - 2010/6/25 3:53
- + JavaScript の質問用スレッド vol.79 + (1001) - [97%] - 2010/9/11 6:50
- + JavaScript の質問用スレッド vol.87 + (1001) - [97%] - 2011/6/21 6:33
- + JavaScript の質問用スレッド vol.97 + (1001) - [97%] - 2012/3/1 3:31
- + JavaScript の質問用スレッド vol.107 + (1001) - [95%] - 2013/9/7 10:16
- + JavaScript の質問用スレッド vol.117 + (1009) - [95%] - 2014/8/5 3:30
- + JavaScript の質問用スレッド vol.127 + (160) - [95%] - 2021/7/16 9:30
- + JavaScript の質問用スレッド vol.127 + (1001) - [95%] - 2016/2/4 0:15
- + JavaScript の質問用スレッド vol.137 + (1003) - [95%] - 2019/3/26 11:46
- + JavaScript の質問用スレッド vol.94 + (1001) - [95%] - 2012/1/8 15:46
- + JavaScript の質問用スレッド vol.99 + (1001) - [95%] - 2012/5/7 4:32
- + JavaScript の質問用スレッド vol.95 + (1001) - [95%] - 2012/1/17 4:16
- + JavaScript の質問用スレッド vol.98 + (1001) - [95%] - 2012/4/9 14:46
- + JavaScript の質問用スレッド vol.93 + (1001) - [95%] - 2011/12/10 18:31
トップメニューへ / →のくす牧場書庫について