{
dhtmlgoodies_marqueeObj = document.getElementById('dhtmlgoodies_marquee');
var spans = dhtmlgoodies_marqueeObj.getElementsByTagName('DIV');
for(var no=0;no<spans.length;no++){
if(spans[no].className=='textObj'){
if(!dhtmlgoodies_marqueeTextObj){
dhtmlgoodies_marqueeTextObj = spans[no];
spans[no].style.display='block';
}else spans[no].style.display='none';
dhtmlgoodies_marqueeTextObjects.push(spans[no]);
var hiddenSpan = document.createElement('SPAN');
hiddenSpan.innerHTML = ' '
spans[no].appendChild(hiddenSpan);
dhtmlgoodies_marqueeHiddenSpans.push(hiddenSpan);
}
}
}
<div id="dhtmlgoodies_marquee">
<div class="textObj"><span class="highlighted">Breaking news!</span> This is!</div>
<div class="textObj"><span class="highlighted">STOCK NEWS:</div>
<div class="textObj"><span class="highlighted">Sport</div>
<div class="textObj"><span class="highlighted">Other news:</div>
</div>
<script type="text/javascript">
initMarquee();
</script>
上記ソースで、Classに指定してある部分を引数にして実行したい場合は
どうしたらいいのでしょうか?
initMarquee();をinitMarquee(aaa);として実行した場合に、
function initMarquee()をfunction initMarquee(aaa)
として処理をしたいです。
質問の内容は、引数の数に応じて異なる関数を実行したい、ということでよろしいでしょうか? もしそうなら、yuki_furuyaさんが回答されたURL先の内容でよいと思います。
引数の数を返すarguments.lengthの値によって、呼び出す関数を分岐させればよいと思います。
以下、サンプル
<html> <head> <script type="text/javascript"> function initMarquee(){ switch( arguments.length ){ case 0: initMarquee_args0(); break; case 1: initMarquee_args1( arguments[0] ); break; default: alert("引数指定エラー"); break; } } function initMarquee_args0(){ alert("引数:0個"); } function initMarquee_args1( aaa ){ alert("引数:1個\n内容:" + aaa); } </script> </script> </head> <body> <div id="dhtmlgoodies_marquee"> <div class="textObj"><span class="highlighted">Breaking news!</span> This is!</div> <div class="textObj"><span class="highlighted">STOCK NEWS:</div> <div class="textObj"><span class="highlighted">Sport</div> <div class="textObj"><span class="highlighted">Other news:</div> </div> <script type="text/javascript"> //引数0個で実行 initMarquee(); //引数1個で実行 initMarquee( document.getElementById("dhtmlgoodies_marquee").firstChild.className ); //引数2個で実行 定義なしのためエラー initMarquee("textObj","test"); </script> </body> </html>
サンプルコードを動作するように修正して欲しいということであれば、現状のソースでは難しいと思います。
質問点を絞るか、全文を記述すれば、修正してくださる方がいるかもしれませんね。
ありがとうございますw
回答者 | 回答 | 受取 | ベストアンサー | 回答時間 | |
---|---|---|---|---|---|
1 | ofk | 12回 | 10回 | 3回 | 2007-04-23 20:33:40 |
すいません、出来ればサンプルコードで修正して
もらってもいいでしょうか?