回答編集履歴

2

修正

2017/06/20 05:55

投稿

yambejp
yambejp

スコア114883

test CHANGED
@@ -16,13 +16,11 @@
16
16
 
17
17
  $('#h1').on('click',function(e){
18
18
 
19
- var t = $('#hoge').get(0);
20
-
21
19
  var v= $('#hoge').val();
22
20
 
23
- var selin = t.selectionStart;
21
+ var selin = $('#hoge').prop('selectionStart');
24
22
 
25
- var selout = t.selectionEnd;
23
+ var selout = $('#hoge').prop('selectionEnd');
26
24
 
27
25
  var befStr="<h1>";
28
26
 
@@ -34,21 +32,29 @@
34
32
 
35
33
  var v3=v.substr(selout);
36
34
 
37
- $('#hoge').val(v1+befStr+v2+aftStr+v3);
35
+ $('#hoge')
38
36
 
39
- t.selectionStart=selin+befStr.length;
37
+ .val(v1+befStr+v2+aftStr+v3)
40
38
 
41
- t.selectionEnd=selin+befStr.length+v2.length;
39
+ .prop({
42
40
 
41
+ "selectionStart":selin+befStr.length,
42
+
43
+ "selectionEnd":selin+befStr.length+v2.length
44
+
45
+ })
46
+
43
- $('#hoge').trigger("focus");
47
+ .trigger("focus");
44
48
 
45
49
  });
46
50
 
47
51
  });
48
52
 
53
+ ```
54
+
55
+ ※ちょっとjQueryっぽく修正しておきました
49
56
 
50
57
 
51
- ```
52
58
 
53
59
  ```HTML
54
60
 

1

sample

2017/06/20 05:55

投稿

yambejp
yambejp

スコア114883

test CHANGED
@@ -5,3 +5,63 @@
5
5
  普通はカーソル位置に挿入するとか、文字列を選択しておいてそれに
6
6
 
7
7
  h1タグを挟むとかすると思いますが、そうでなくてもいいのでしょうか?
8
+
9
+
10
+
11
+ # sample
12
+
13
+ ```javascript
14
+
15
+ $(function(){
16
+
17
+ $('#h1').on('click',function(e){
18
+
19
+ var t = $('#hoge').get(0);
20
+
21
+ var v= $('#hoge').val();
22
+
23
+ var selin = t.selectionStart;
24
+
25
+ var selout = t.selectionEnd;
26
+
27
+ var befStr="<h1>";
28
+
29
+ var aftStr="</h1>";
30
+
31
+ var v1=v.substr(0,selin);
32
+
33
+ var v2=v.substr(selin,selout-selin);
34
+
35
+ var v3=v.substr(selout);
36
+
37
+ $('#hoge').val(v1+befStr+v2+aftStr+v3);
38
+
39
+ t.selectionStart=selin+befStr.length;
40
+
41
+ t.selectionEnd=selin+befStr.length+v2.length;
42
+
43
+ $('#hoge').trigger("focus");
44
+
45
+ });
46
+
47
+ });
48
+
49
+
50
+
51
+ ```
52
+
53
+ ```HTML
54
+
55
+ <textarea type="text" id="hoge" rows=10>
56
+
57
+ aaabbb
58
+
59
+ cccddd
60
+
61
+ eeefff
62
+
63
+ </textarea><br>
64
+
65
+ <span id="h1">H1</span>
66
+
67
+ ```