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 안에 있는 아래 2개를 가져오고 싶은데
어떻게 수정해야 되나요?
commentNo:'12345'
objectId:'55555_10'
<script>
$(document).on('click','.u_cbox_btn_recomm',function(e){
var series_item = $(this).val("data-param")[commentNo];
alert(series_item);
});
</script>
감사합니다.
답변 4
<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="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
$(document).on('click','.u_cbox_btn_recomm',function(e){
// var series_item = $(this).val("data-param")[commentNo];
// alert(series_item);
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);
});
</script>
$(document).on('click', '.u_cbox_btn_recomm', function() {
var param = $(this).data('param');
var d = JSON.parse(param);
alert(d.commentNo);
alert(d.objectId);
});
$(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); });
json형식이 아닌 일반 배열로 변형한 방법입니다
$(document).on('click', '.u_cbox_btn_recomm', function() {
param = $(this).data('param');
tmp = param.split(',');
data = [];
for(i=0; i<tmp.length; i++){
tmp2 = tmp[i].split(':');
data[tmp2[0]] = tmp2[1];
}
alert(data['mine']);
alert(data['commentNo']);
alert(data['objectId']);
});