javascript - 如何将元素放入另一个元素(jQuery)?

标签 javascript jquery html

这是我在页面上的标记,字面意思是:

data-eng="text"data-eng="text"data-eng="text"data-fr="text"data-fr="text"data-fr="text"data-ger="text"data-ger="text"data-ger="text"

这就是我从上面的标记中需要的:

<a data-eng="text" data-fr="text" data-ger="text"></a>
<a data-eng="text" data-fr="text" data-ger="text"></a>
<a data-eng="text" data-fr="text" data-ger="text"></a>

如您所见,我需要制作的行数( anchor 链接)取决于原始标记中有多少相同的数据属性。例如

data-eng="text"data-eng="text"data-eng="text"data-fr="text"data-fr="text"data-fr="text"data-ger="text"data-ger="text"data-ger="text"

会产生

<a data-eng="text" data-fr="text" data-ger="text"></a>
<a data-eng="text" data-fr="text" data-ger="text"></a>
<a data-eng="text" data-fr="text" data-ger="text"></a>

data-eng="text"data-fr="text"data-ger="text"

会产生

<a data-eng="text" data-fr="text" data-ger="text"></a>

我对如何解决这个问题有点困惑,有人可以向我展示一个适用于这个问题的示例代码吗?我尝试过 .wrap 和 .append 但没有运气,我似乎无法完成我需要的行。

最佳答案

我认为你的方法不是一个好主意,但有时黑客是必要的。为此,您可以采取的一种方法是针对它运行正则表达式。

Something like this fiddle should work.

您可能需要针对您的特定用例修改它,但这应该足以让您开始:)

这里是代码。基本上,我们对 3 个模式进行正则表达式,然后绘制与最小模式数组长度一样多的链接。 (匹配返回匹配数组,如果没有匹配则返回 null。您可能还想添加一些错误检查。)

var cmsOut = 'data-eng="text"data-eng="text"data-eng="text"data-fr="text"data-fr="text"data-fr="text"data-ger="text"data-ger="text"data-ger="text"';

var engDetector = cmsOut.match(/data-eng="text"/g);
var frDetector  = cmsOut.match(/data-fr="text"/g);
var gerDetector = cmsOut.match(/data-ger="text"/g);


var htmlOut = '';
for(i=0;i<engDetector.length;i++){
    if(engDetector[i] && frDetector[i] && gerDetector[i]){
        htmlOut += '<a data-eng="text" data-fr="text" data-ger="text">test</a><br>';       
    }
}

document.getElementById('demo').insertAdjacentHTML('afterbegin', htmlOut);

关于javascript - 如何将元素放入另一个元素(jQuery)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29885157/

相关文章:

Javascript:js 在事件加载时不执行

html - 页脚元素垂直对齐

javascript - 在 JavaScript 中结合设计模式是一种好的做法吗

javascript - 日期范围提示模态不能用作所述模态中的变量

c# - 清理由 c# 中的 contentEditable 创建的 HTML

javascript - 在jQuery中通过索引获取字典的键值

javascript - Bootstrap DatePicker checkin / checkout

javascript - 单击新添加的列表项时 jQuery 单击事件未触发

javascript - POST 请求中的测试和 stub 参数

javascript - 测试 Promise.all