回答編集履歴

1

修正

2019/09/03 07:30

投稿

m.ts10806
m.ts10806

スコア80850

test CHANGED
@@ -1 +1,79 @@
1
1
  同ページに同じIDは設置できません。
2
+
3
+ JavaScript側もHTML上、1番目に出てくる要素にしかイベントが登録されないようになっていますね。
4
+
5
+ classにするだけでも解決しそうにないので、最も親であるboxのクリックではなくボタンクリックで拾われたほうが良いように思います。
6
+
7
+
8
+
9
+ ```html
10
+
11
+ <div id="box1" class="copy_area">
12
+
13
+ <div id="code1" class="target_code">
14
+
15
+ <p>テキスト</p>
16
+
17
+ </div>
18
+
19
+ <div class="btn">
20
+
21
+ <p class="copy_btn">ボタン1</p>
22
+
23
+ </div>
24
+
25
+ </div>
26
+
27
+
28
+
29
+ <div id="box2" class="copy_area">
30
+
31
+ <div id="code2" class="target_code">
32
+
33
+ <p>ダミー</p>
34
+
35
+ </div>
36
+
37
+ <div class="btn">
38
+
39
+ <p class="copy_btn">ボタン2</p>
40
+
41
+ </div>
42
+
43
+ </div>
44
+
45
+
46
+
47
+ ```
48
+
49
+
50
+
51
+ ```js
52
+
53
+ $(function() {
54
+
55
+ $('.alert_area').hide();
56
+
57
+ $('.copy_btn').on('click',function() {
58
+
59
+ var clickbtn = $('<textarea></textarea>');
60
+
61
+ clickbtn.html($(this).parent().parent().children('.target_code').html());
62
+
63
+ $(this).append(clickbtn);
64
+
65
+ clickbtn.select();
66
+
67
+ document.execCommand('copy');
68
+
69
+ console.log(clickbtn.html());
70
+
71
+ clickbtn.remove();
72
+
73
+ $('.alert_area').show();
74
+
75
+ });
76
+
77
+ });
78
+
79
+ ```