wadigchan
@wadigchan

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

検索された数値に対応したIDの要素を指定したい。

解決したいこと

LaravelとVueを使った座席検索サイトを作っています(Laravelというより、VueやCSSがメインになりそうですが…)
機能としては、
チケット番号を入力すれば自分の座席の位置がわかるというサービスで、12000席ほどある会場で作ろうとしています。
HTMLとCSSで会場を再現し、座席を<td>要素でエリア分けしています。
エリアは120個ほどです。

次にメインとなる、検索された座席番号に対応した要素を光らせるという機能をつけようとしています。
今考えているのは、
一つ一つの要素に、1~10番、11~20番、21~30番などと10刻みでIDを付け、
例えば13番という席番号が検索された場合は、
IDに13が含まれている要素(この場合だと11~20番の要素)を光らせるというようなやり方なのですが、これは良いと思いますか?

また、このやり方を再現するにはどのような技術を使えば効率よく開発ができるかアドバイスいただきたいです。
もし他にもっと効率の良い書き方がありましたら教えてください、、

よろしくお願いします。

現在の状況

一部ですが、HTMLとCSSで再現した会場はこんな感じです。

<div class="stand-2l">
  <h>2階席L</h>
  <span v-for="n in 5" :key="n">
    <tr class="stand-2lTop">
      <td>L0{{ 2 * n - 1 }}</td>
    </tr>
    <tr class="stand-2lBottom">
       <td v-if="n != 5">L0{{ 2 * n }}</td>
       <td v-if="n === 5">L{{ 2 * n }}</td>
    </tr>
  </span>
</div>

スクリーンショット 2022-04-26 16.09.40.png

0

2Answer

12000席あって、10席刻みのセクションがある=1200セクション。
これを毎度指定される番号に対して、対応するセクションを探すのを1200の要素をグルグル回すのはだるそうなので、1200セクションはそれぞれ

<div id="section_11-20">
...
</div>

こういう風にIDを振っておいて、

const number = 13

const base = Math.trunc(number / 10) * 10 
const from = base + 1
const to = base + 10

const id = `section_${from}-${to}` // => 'section_11-20'

こういう感じでIDを割り出して光らせるとか?

0Like

Comments

  1. @wadigchan

    Questioner

    ありがとうございます。
    ものすごく感動しました。
    この方法で僕のやりたかったことが実装できそうです、やってみます。

    そして、こんな考え方を自分で出来るようにもっと頑張ろうと思いました。ありがとうございます。

それぞれに共通のclassを割り当てるとかではダメでしょうかね。
12000席=1200グループ全部にcssを割り当てるのは冗長なので、
「同一クラスを持つ要素を(hover時に)光らせる」scriptを書いてみました。
(classでやろうと思いましたがdataを使ってみました)
参考になるかはわかりません。

See the Pen Untitled by yulianess23 (@yulianess23) on CodePen.

0Like

Comments

  1. @wadigchan

    Questioner

    いつも回答ありがとうございます。
    わざわざ例まで書いていただきとても嬉しいです、ありがとうございます。
    参考にさせていただきます!

Your answer might help someone💌