質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

4回答

1783閲覧

特定のidがある箇所にidを追加したい

scoa

総合スコア66

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2017/03/01 07:38

いつもお世話になります。

下記のような結果が欲しいのですが、
作成したjQueryですと、#hogeが上書きされて#hugaのみになってしまいます。

jQuery

1$('#hoge').attr('id', 'huga');

html

1<ul id="hoge"> 2 <li>aaa</li> 3 <li>bbb</li> 4</ul> 5 6<!-- ↓下記のようにしたい --> 7 8<ul id="hoge huga"> 9 <li>aaa</li> 10 <li>bbb</li> 11</ul>

恐れ入りますが、ご教示の程よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2017/03/01 07:40

なぜ追加したいんですか?
scoa

2017/03/01 07:49 編集

ご回答ありがとうございます。#huga liの中身が全て「ccc」になったら○○○をする、 といった動きをさせたいため、追加を考えておりました。id属性値は複数の値を持つことはできないそうですので、 違う方法を考えてみます。
Zuishin

2017/03/01 07:53

$("#huga li") ではいけませんか?
guest

回答4

0

1つのタグにidは1つとHTMLのルール上決められています。なので無理です…

投稿2017/03/01 07:47

masaya_ohashi

総合スコア9206

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

scoa

2017/03/01 07:49

ご回答ありがとうございます。違う方法を考えてみます…!
guest

0

ベストアンサー

id属性値は複数の値を持つことが出来ません。
希望する動作次第ですが、class属性値やdata-*属性値を使用してみてはいかがでしょうか。

Re: abiscoa さん

投稿2017/03/01 07:45

think49

総合スコア18162

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

scoa

2017/03/03 09:27 編集

ご回答ありがとうございます。 勉強になりました。他の属性値で対応する方法を考えてみます。
think49

2017/03/01 08:25

> #hogeがあるとき、#hugaがあるとき、で異なる動作をさせる予定でした。 既存の属性に左右されず、JavaScriptの適用条件としてのマーキング目的なら class 属性値を使うのが一般的かと思います。 class 属性値は空白区切りで複数の値を指定できます。
guest

0

「IDを書き換える」という動作自体、あまり必要とされるものではないのですが、ふつう設定しないような「スペース入りのID」を設定して、どういう使い方をするのでしょうか。

なお、<ul id="hoge huga">$('#hoge')で拾うことはできません。

投稿2017/03/01 07:45

maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

think49

2017/03/01 07:46

一応、補足しておきますと、id属性値は空白文字だけは入力できません。
scoa

2017/03/03 09:28 編集

ご回答ありがとうございます。 #hogeがあるとき、#hugaがあるとき、で異なる動作をさせる予定でした。 他の方からご指摘頂いた通り、id属性値は複数の値を持つことが出来ないとのことですので、違う方法を考えてみます。
maisumakun

2017/03/01 07:53

そんな規定があったのですね…たまに「数字始まりのID」を指定してトラブルになったことはあったのですが、スペース入りを指定しようと思ったこともなかったので初めて知りました。ありがとうございます。
think49

2017/03/01 08:14

To: maisumakun さん ちなみに、仕様上の記述は下記にあります。 > HTML要素で指定される場合、id属性値は、要素のツリーですべてのIDに共通して固有でなければならず、かつ少なくとも1つの文字を含まなければならない。値は一切の空白文字を含んではならない。 https://momdo.github.io/html/dom.html#global-attributes > たまに「数字始まりのID」を指定してトラブルになったことはあったのですが、 HTML 4.01ではアルファベットで始まらなければならない(MUST)ですが、HTML Living Standard では許されますね。 また、CSSのidセレクタは数字から始まることが出来ないと思われがちですが、実はエスケープシーケンスを使えば数字から始まるidセレクタを指定できる事はあまり知られていないように思います。 https://jsfiddle.net/5xt5ebzy/ セマンティック的でないので知られなくて良いテクニックだと思っていましたがが、そういう案件があるなら困りますね。
guest

0

蛇足ですが以下で確認できます

HTML

1<style> 2#hoge1,#hoge2,#hoge3{background-Color:yellow;} 3#fuga1,#fuga2,#fuga3{color:red;} 4</style> 5<div id="hoge1" id="fuga1">piyo</div> 6<div id="hoge2 fuga2">piyo</div> 7<div id="hoge3"><div id="fuga3">piyo</div></div> 8

投稿2017/03/01 07:57

yambejp

総合スコア114769

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問