小编San*_*hit的帖子

如何正确使用innerHTML从html字符串创建一个元素(带有可能的子元素)?

注:我希望使用任何框架.


目标只是创建一个基于HTML字符串返回元素的函数.


假设一个简单的HTML文档,如下所示:

<html>
<head></head>
<body>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

提到的所有函数都包含在head部分中,所有DOM创建/操作都在body标记的主体末尾完成.


我有一个函数createElement,它将一个格式良好的HTML String作为参数.它是这样的:

function createElement(str)
{
  var div = document.createElement('div');
  div.innerHTML = str;
  return div.childNodes;
}
Run Code Online (Sandbox Code Playgroud)

现在这个函数在你调用它时效果很好:

var e = createElement('<p id="myId" class="myClass">myInnerHTML</p>');
Run Code Online (Sandbox Code Playgroud)

由于元素创建的次要(可能是巨大的)问题不是'true'元素,它仍然有一个'div'的parentNode.如果有人知道如何解决这个问题,那将是非常棒的.


现在,如果我使用更复杂的字符串调用相同的函数:

var e = createElement('<p id="myId" class="myClass">innerHTML<h2 id="h2ID" class="h2CLASS">Heading2</h2></p>');
Run Code Online (Sandbox Code Playgroud)

它创造了两个孩子,而不是一个孩子,另一个孩子有另一个孩子.

一旦你做了div.innerHTML = str.innerHTML而不是

`<p id="myId" class="myClass">innerHTML    <h2 id="h2ID" class="h2CLASS">Heading2</h2>    </p>`
Run Code Online (Sandbox Code Playgroud)

转向

`<p id="myId" class="myClass">innerHTML</p>        <h2 id="h2ID" class="h2CLASS">Heading2</h2>`
Run Code Online (Sandbox Code Playgroud)


问题:

  1. 在使用.innerHTML后,我可以以某种方式获取没有父节点的元素吗?
  2. 我可以(在稍微复杂的字符串的情况下)使我的函数返回一个元素与适当的子元素而不是两个元素.[它实际上返回三个,<p.myClass#myId>,<h2.h2CLASS#h2ID>,和另一个<p>]

javascript string dom innerhtml

23
推荐指数
1
解决办法
4万
查看次数

MySQL查询速度很慢.索引列上的计数(*)

该表位于InnoDB表中.以下是一些可能有用的信息.

EXPLAIN SELECT COUNT(*) AS y0_ FROM db.table this_ WHERE this_.id IS NOT NULL;

+----+-------------+-------+-------+---------------+---------+---------+------+---------+--------------------------+
| id | select_type | table | type  | possible_keys | key     | key_len | ref  | rows    | Extra                    |
+----+-------------+-------+-------+---------------+---------+---------+------+---------+--------------------------+
|  1 | SIMPLE      | this_ | index | PRIMARY       | PRIMARY | 8       | NULL | 4711235 | Using where; Using index |
+----+-------------+-------+-------+---------------+---------+---------+------+---------+--------------------------+
1 row in set (0.00 sec)

mysql> DESCRIBE db.table;
+--------------+--------------+------+-----+---------+-------+
| Field        | Type         | Null | Key …
Run Code Online (Sandbox Code Playgroud)

mysql sql performance innodb

6
推荐指数
1
解决办法
9471
查看次数

根据现有的VBA功能将数据验证应用于许多单元

我不知道如何仅使用公式在循环中运行字符串.

这是我试图转换为公式的vba代码.我想使用这个公式来进行各种细胞的数据验证.

式:

Function Test(pValue) As Boolean
    If Len(pValue) < 2 Or Len(pValue) > 99 Then
        AlphaNumeric = False
        Exit Function
    End If
    LPos = 1
    LValid_Values = " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.0123456789"
    While LPos <= Len(pValue)
        LChar = Mid(pValue, LPos, 1)
        If InStr(LValid_Values, LChar) = 0 Then
            Test = False
            Exit Function
        End If
        LPos = LPos + 1
    Wend
    Test = True
End Function
Run Code Online (Sandbox Code Playgroud)

我写的公式的简单部分:

=IF(AND(LEN(E4)>1,LEN(E4)<100,____Formula_Here____),TRUE,FALSE)
Run Code Online (Sandbox Code Playgroud)

我假设如果我选择E4:E50000并点击DataValidation,Custom从下拉列表中选择,然后输入上面的公式,那么它将自动应用于E4,E5,E6 .. E50000.如果我弄错了,请纠正我.

此外,我希望它在Excel 2003及更高版本上运行.

excel vba excel-vba excel-formula

2
推荐指数
1
解决办法
1892
查看次数

为什么用更少/更多的参数重载函数?

所以我是一名java程序员,我知道重载函数意味着什么.此外,我重载了一个具有不同类型参数的函数,并且可以重载,更少和更多的参数.

我在接受采访时被问到这个问题.我真的不知道这有什么好处或者面试官在这里得到了什么.它有任何性能优势吗?有什么想法吗?

谢谢.

oop overloading

1
推荐指数
2
解决办法
519
查看次数