如何在html字符串var中包装元素?

时间:2016-08-11 14:00:22

标签: javascript jquery html

如果我使用以下代码:

var output = '<div class="info"><span class="bus-number">468 (58247)</span></div>';
var span = $(output).find('span.bus-number').text();
console.log(span);

我可以看到值

  

468(58247)

在控制台中,但如果我尝试使用wrap()方法,并使用以下代码:

var output = '<div class="info"><span class="bus-number">468 (58247)</span></div>';
$(output).find('span.bus-number').wrap('<b></b>');
console.log(output);

我无法获取此HTML代码:

<div class="info"><b><span class="bus-number">468 (58247)</span></b></div>

如何获取包含元素的字符串?

3 个答案:

答案 0 :(得分:3)

您不是在更新jQuery对象时更新字符串,因此使用 html() 方法从jQuery对象中获取HTML内容。

&#13;
&#13;
echo "hello 123 worLD" | grep -oP "\b(?=[A-Z]+[a-z]|[a-z]+[A-Z])[a-zA-Z]*"
&#13;
var output = '<div class="info"><span class="bus-number">468 (58247)</span></div>';
// create a div element with html content
output = $('<div/>', {
    html: output
      // get span
  }).find('span.bus-number')
  // wrap the span
  .wrap('<b></b>')
  // back to previous selector
  .end()
  // get the html content
  .html();

console.log(output);
&#13;
&#13;
&#13;

或使用dom元素的 outerHTML 属性。

&#13;
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
var output = '<div class="info"><span class="bus-number">468 (58247)</span></div>';
// create jQuery object
output = $(output)
  // get span element
  .find('span.bus-number')
  // wrap span with b
  .wrap('<b></b>')
  // back to previous selector and get dom object
  // using [0] after get html content from dom
  .end()[0].outerHTML;

console.log(output);
&#13;
&#13;
&#13;

答案 1 :(得分:1)

您可以使用html()功能。

注意html()函数返回元素的INNER html,所以你需要用另一个元素包装它来获取html:

&#13;
&#13;
var output = '<div class="info"><span class="bus-number">468 (58247)</span></div>';
var span = $(output).find('span.bus-number').text();
console.log(span);

var span = $(output).find('span.bus-number').wrap('<b></b>');
console.log(span.parent('b').html());
console.log(span.parents('div.info').html());
console.log($('<div>').append(span.parents('div.info')).html());
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

因为var forEach = function (array, callback, scope) { for (var i = 0; i < array.length; i++) { callback.call(scope, i, array[i]); } }; var myNodeList = document.querySelectorAll('i'); forEach(myNodeList, function (index, value) { console.log(index, value); }); 只是一个不可变的字符串。 例如,您可以

output