-3

在纯javascript(不使用JQuery/dojo/etc)中,拆分字符串的最佳/最简单/最快的方法是什么,例如

var tempString = '<span id="35287845" class="smallIcon" title="time clock" style="color:blue;font-size:14px;" contenteditable="false">cookie</span>';

进入

var id = 'id="35287845"';
var class = 'class="smallIcon"';
var title = 'title="time clock"';
var style = 'style="color:blue;font-size:14px;"';
var contenteditable = 'contenteditable="false"';

注意事项:

  • “空格”不能用作适当的分隔符,因为它可能出现在上面(时钟)的值中,例如标题。

  • 维护每个变量周围的双引号,例如 id="35287845" 很重要

  • 可以丢弃开始/结束跨度标签,以及在这种情况下为“cookie”的内容

4

2 回答 2

1

我认为您正在尝试获取跨度中的属性,请检查此响应,告诉您如何操作。

使用 Javascript/jQuery 从 HTML 元素中获取所有属性

您也可以获取属性并使字符串将值与您的字符串连接起来。

(你可以在那里找到纯 javascript 的解释)

于 2012-12-04T00:49:02.630 回答
1

这是一种方法,将输入字符串作为 innerhtml 放入 javascript 创建的 dom 元素中,然后利用属性数组

//Input html string
var tempString = '<span id="35287845" class="smallIcon" title="time clock" style="color:blue;font-size:14px;" contenteditable="false">cookie</span>';

//make element to contain html string
var tempDiv = document.createElement("div");

//place html string as innerhtml to temp element
tempDiv.innerHTML = tempString;

//leverage attributes array on element
var attributeArray = tempDiv.firstChild.attributes;

//log results
console.log(attributeArray);

请注意,您现在可以执行类似的操作

var classString = attributeArray.class;

或者

var titleString = attributeArray.title;

编辑

这是一个可以做到这一点的函数:

function getAttributesFromString(htmlString)
{
 var tempDiv = document.createElement("div");
 tempDiv.innerHTML = htmlString;
 return tempDiv.firstChild.attributes;
}
于 2012-12-04T00:49:11.547 回答