테스트 사이트 - 개발 중인 베타 버전입니다

jquery 질문 드립니다. 채택완료

망고프리 2년 전 조회 5,849

안녕하세요.

<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개

채택된 답변
+20 포인트
2년 전

</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개

망고프리
2년 전
안녕하세요.
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>
배르만
2년 전
[code]
<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]

댓글을 작성하려면 로그인이 필요합니다.

A
2년 전

</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>

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

복스리
2년 전

 

.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

 

 

복잡하게 설명하지 않고 이해가 쉽게 간결하게 정리해봤습니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

s
2년 전
값얻기 : $(this).data('data-param');

값설정: $(this).data('data-param', 'value');

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

망고프리
2년 전
안녕하세요.
값이 잘 안나오네요
혹시 샘플을 알수 있을까요?
감사합니다.

var data_param_u= $(this).data('data-param', 'value');
data_param_u.attr("commentNo",commentNo);

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인