jquery 질문 드립니다. 채택완료
안녕하세요.
<a href="#" data-action="vote" data-param="mine:false,commentNo:'12345',voteStatus:'SYMPATHY',objectId:'55555_10',ticket:'comic'" data-log="RPC.sym#RPC.unsym" class="u_cbox_btn_recomm"></a>
jquery에서 data-param값을 가져오고 싶으면
아래 처럼 하면 되는
반대로
data-param에 값을 넣고 싶을때는 어떻게 하는지 궁금합니다.
</p>
<p>$(document).on('click', '.u_cbox_btn_recomm', function(e){
var data_param = $(this).attr("data-param");
var commentNo = data_param.match(/commentNo:'(.*?)'/)[1];
var objectId = data_param.match(/objectId:'(.*?)'/)[1];
alert(commentNo);
alert(objectId);
});
data-param 에 값 넣기
<a href="#" data-action="vote" data-param="mine:false,commentNo:'12345',voteStatus:'SYMPATHY',objectId:'55555_10',ticket:'comic'" data-log="RPC.sym#RPC.unsym" class="u_cbox_btn_like"></a>
var data_param_u = $('.u_cbox_btn_like').attr("data-param");
data_param_u.attr('commentNo','ccccc');
data_param_u.attr('objectId','88888_10');
위 처럼 해도 안되네요.
어떻게 해야 값을 넣을수 있나요?
감사합니다.
답변 4개
</p>
<p><a href="#" data-action="vote" data-param="mine:false,commentNo:'12345',voteStatus:'SYMPATHY',objectId:'55555_10',ticket:'comic'" data-log="RPC.sym#RPC.unsym" class="u_cbox_btn_recomm">u_cbox_btn_recomm</a>
<script src="<a href="http://code.jquery.com/jquery-latest.min.js"></script>" target="_blank" rel="noopener noreferrer">http://code.jquery.com/jquery-latest.min.js"></script></a>
<script>
$(document).on('click','.u_cbox_btn_recomm',function(e){
var series_items = $(this).data('param');
series_items = series_items.replace(/([^,]+):/g, '"$1":');
series_items = series_items.replace(/:'(.*?)'(,|$)/g, ':"$1"$2');
series_items = '{' + series_items + '}';
var series_obj = JSON.parse(series_items);
console.log(series_obj);
// alert(series_obj.commentNo);
// alert(series_obj.objectId);</p>
<p> </p>
<p> var now = String(Date.now());
series_obj.commentNo = 'ccccc'.concat('_').concat(now);
series_obj.objectId = '88888_10'.concat('_').concat(now);</p>
<p> </p>
<p> var series_str = JSON.stringify(series_obj);
series_str = series_str.replace(/"([^,"]+)":/g, '$1:').replace(/"/g, "'");
$(this).data('param', series_str.substring(1, series_str.length - 1));
$(this).attr('data-param', series_str.substring(1, series_str.length - 1));
});
</script></p>
<p>
답변에 대한 댓글 2개
<a href="#" data-action="vote" data-param="mine:false,commentNo:'12345',voteStatus:'SYMPATHY',objectId:'55555_10',ticket:'comic'" data-log="RPC.sym#RPC.unsym" class="u_cbox_layer_userblock_primarybtn u_cbox_btn_userblock">u_cbox_layer_userblock_primarybtn, u_cbox_btn_userblock</a>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
$(document).on('click','.u_cbox_btn_userblock',function(e){
$(".u_cbox.u_cbox_layer_wrap").css('display','block');
// var data_param = $(this).attr("data-param");
// console.log(data_param);
// var commentNo = data_param.match(/commentNo:'(.*?)'/)[1];
// var objectId = data_param.match(/objectId:'(.*?)'/)[1].split("_");
// var nickName = data_param.match(/nickName:'(.*?)'/)[1];
// var series_id = objectId[0];
// var no = objectId[1];
var series_items = $('.u_cbox_layer_userblock_primarybtn').data('param');
series_items = series_items.replace(/([^,]+):/g, '"$1":');
series_items = series_items.replace(/:'(.*?)'(,|$)/g, ':"$1"$2');
series_items = '{' + series_items + '}';
var series_obj = JSON.parse(series_items);
// alert(series_obj);
console.log(series_obj);
var now = String(Date.now());
series_obj.commentNo = 'ccccc'.concat('_').concat(now);
series_obj.objectId = '88888_10'.concat('_').concat(now);
var series_str = JSON.stringify(series_obj);
series_str = series_str.replace(/"([^,"]+)":/g, '$1:').replace(/"/g, "'");
$(this).data('param', series_str.substring(1, series_str.length - 1));
$(this).attr('data-param', series_str.substring(1, series_str.length - 1));
return false;
});
</script>
[/code]
댓글을 작성하려면 로그인이 필요합니다.
</p>
<p>var data_param_u = $('.u_cbox_btn_like').attr("data-param");</p>
<p> </p>
<p>data_param_u = data_param_u.replace(/commentNo:'\d+'/g, "commentNo:'ccccc'");
data_param_u = data_param_u.replace(/objectId:'\d+_\d+'/g, "objectId:'88888_10'");</p>
<p> </p>
<p>$('.u_cbox_btn_like').attr("data-param", data_param_u);</p>
<p>
댓글을 작성하려면 로그인이 필요합니다.
.attr()을 이용하면 요소의 속성 값을 가져오거나(get) 변경(set)할 수 있습니다.
아래과 같은 테크로 문장이 구성되었다면....
<a href="#" data-action="vote" data-param="mine:false,commentNo:'12345',voteStatus:'SYMPATHY',objectId:'55555_10',ticket:'comic'" data-log="RPC.sym#RPC.unsym" class="u_cbox_btn_recomm"></a>
-- 아래 내용을 참고 하시면 되듯합니다.
$(".u_cbox_btn_recomm").attr("data-param");
// 요소의 속성 값 get
$(".u_cbox_btn_recomm").attr("data-param", "attributeValue");
// 요소의 속성 값 set
복잡하게 설명하지 않고 이해가 쉽게 간결하게 정리해봤습니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
series_items 까지는 값이 잘 넘어오는데
아래 부분에서 부터 값이 넘어오지 않습니다.
var series_obj = JSON.parse(series_items);
console.log(series_obj);
감사합니다.
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
$(document).on('click','.u_cbox_btn_userblock',function(e){
$(".u_cbox.u_cbox_layer_wrap").css('display','block');
var data_param = $(this).attr("data-param");
var commentNo = data_param.match(/commentNo:'(.*?)'/)[1];
var objectId = data_param.match(/objectId:'(.*?)'/)[1].split("_");
var nickName = data_param.match(/nickName:'(.*?)'/)[1];
var series_id = objectId[0];
var no = objectId[1];
var series_items = $('.u_cbox_layer_userblock_primarybtn').data('param');
series_items = series_items.replace(/([^,]+):/g, '"$1":');
series_items = series_items.replace(/:'(.*?)'(,|$)/g, ':"$1"$2');
series_items = '{' + series_items + '}';
var series_obj = JSON.parse(series_items);
alert(series_obj);
series_obj.commentNo = commentNo;
return false;
});
</script>