簡體   English   中英

javascript數組到字符串的轉換

[英]javascript array to string conversion

我在javascript中有這個數組:

[div.parts, div.editor, div.inside-1, div.container-2, div.inside-wrapper, div#content, div.whitebgpan, div, div#maindiv, body, html]

如何將其轉換為字符串,以便輸出為:

div.parts div.editor div.inside-1 div.container-2 div.inside-wrapper div#content div.whitebgpan div div#maindiv body html

這是我的代碼:

jQuery(document).on('click', function(e){
    var ClickedParents = jQuery(e.target).parents(); //Get all parents of clicked element
    var ClickedParents_array = jQuery.makeArray(ClickedParents); //Make array
    console.log(ClickedParents_array); //Show output in colsole
});

您可以結合使用jQuery each函數和JavaScript的Array.Join函數來解決此問題。

演示http : //jsfiddle.net/zay015ex/1/

我已經人工檢索了jQuery對象數組,以顯示如何解決此問題,但是這個概念對於您的問題很普遍。

的HTML

<div id="parent">
    <div id="child1"></div>
    <div id="child2"></div>
    <div id="child3"></div>
    <div id="child4"></div>
    <div id="child5"></div>
</div>

的JavaScript

var arrayOfObjects = $('#parent').children();
var ids = [];

$.each(arrayOfObjects, function(i, val)
   {
       ids.push(val.id);
   });

var idString = ids.join(' ');
  • 您可以在此處閱讀有關jQuery each函數的更多信息

  • 您可以在JavaScript的Array.Join函數上閱讀更多內容
    在這里

=====更新=====

好的,下面的代碼已經過測試,只需打開一個控制台並將其粘貼。 它選擇所有div標簽並轉換為選擇器字符串。

$.map($('div'),function toSelector(elem){
    var jqObj = $(elem)
    var tag = jqObj.prop('tagName').toLowerCase()
    var classes = jqObj.attr('class') ? '.' + jqObj.attr('class').split(' ').join('.') : ''
    var ids = jqObj.attr('id') ? '#' + jqObj.attr('id').split(' ').join('#'): ''
    return tag + classes + ids
})

===================

假設它們是jquery對象,則必須手動構建字符串。 例如,執行以下操作。 (未測試)

function toSelector(jqObj){
  var tag = jqObj.prop('tagName').toLowerCase()
  var classes = jqObj.attr('class') ? '.' + jqObj.attr('class').split(' ').join('.') : ''
  var ids = jqObj.attr('id') ? '#' + jqObj.attr('id').split(' ').join('#'): ''
  return tag + classes + ids
}

array.map(toSelector)

我認為以下代碼對您有所幫助。

 <script type="text/javascript"> String.prototype.replaceAll = function ( token, newToken, ignoreCase ) { var _token; var str = this + ""; var i = -1; if ( typeof token === "string" ) { if ( ignoreCase ) { _token = token.toLowerCase(); while( ( i = str.toLowerCase().indexOf( token, i >= 0 ? i + newToken.length : 0 ) ) !== -1 ) { str = str.substring( 0, i ) + newToken + str.substring( i + token.length ); } } else { return this.split( token ).join( newToken ); } } return str; }; try{ var arr = []; arr.push('div.parts', 'div.editor', 'div.inside-1', 'div.container-2', 'div.inside-wrapper', 'div#content', 'div.whitebgpan', 'div', 'div#maindiv', 'body', 'html'); var stringData = arr.toString(); stringData = stringData.replaceAll(",", " "); console.log(stringData); }catch(e){ alert(e) } </script> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM