我试图在我的javascript中放置一个变量,该变量将进入一个html对象的url。我尝试过分配属性" data-url"正在部分使用嵌入式调查表。我也试过setAttribute而没有成功。
<div class="typeform-widget" data-url="https://eatforklore.typeform.com/to/XPDPsx?p1=xxxxx&p2=xxxxx&p3=xxxxx&p4=xxxxx" data-text="Mo. 1 Product Reviews" style="width: 100%; height: 500px;"></div>
<script>// <![CDATA[
var a = document.getElementsByTagName('typeform-widget');
a.data-url = "https://eatforklore.typeform.com/to/XPDPsx?p1=" + p1;
(function(){var qs,js,q,s,d=document,gi=d.getElementById,ce=d.createElement,gt=d.getElementsByTagName,id='typef_orm',b='https://s3-eu-west-1.amazonaws.com/share.typeform.com/';if(!gi.call(d,id)){js=ce.call(d,'script');js.id=id;js.src=b+'widget.js';q=gt.call(d,'script')[0];q.parentNode.insertBefore(js,q)}})()
// ]]></script>
答案 0 :(得分:0)
getElementsByTagName
是:
getElementsByClassName
。在数组上调用set atrribute将不起作用。看起来你想做的事情就像是:
<div class="typeform-widget" data-url="https://eatforklore.typeform.com/to/XPDPsx?p1=xxxxx&p2=xxxxx&p3=xxxxx&p4=xxxxx" data-text="Mo. 1 Product Reviews" style="width: 100%; height: 500px;"></div>
<script>// <![CDATA[
var a = document.getElementsByClassName('typeform-widget');
for(var i = 0; i < a.length; i ++)
a[i].setAttribute('data-url','https://eatforklore.typeform.com/to/XPDPsx?p1=' + p1);
(function(){var qs,js,q,s,d=document,gi=d.getElementById,ce=d.createElement,gt=d.getElementsByTagName,id='typef_orm',b='https://s3-eu-west-1.amazonaws.com/share.typeform.com/';if(!gi.call(d,id)){js=ce.call(d,'script');js.id=id;js.src=b+'widget.js';q=gt.call(d,'script')[0];q.parentNode.insertBefore(js,q)}})()
// ]]></script>
编辑:如果您希望获取页面上的每个getElmentsByTagName
,但您的代码使用的是类名而不是标记名,那么div
会很有用。> p>
编辑2:修复了循环 - 感谢指出我的疏忽@JPO:)
答案 1 :(得分:0)
document.getElementsByTagName
根据标记选择节点,而不是类。例如,如果我想选择页面上的所有链接,我会使用:
var links = document.getElementsByTagName('a');
@ ian-mundy建议getElementsByClassName
是正确的,但for循环中有错误。它应该看起来像:
var a = document.getElementsByClassName('typeform-widget');
for(var i = 0; i < a.length; i++) {
var link = a[i];
link.setAttribute('data-url','https://eatforklore.typeform.com/to/XPDPsx?p1=' + p1);
}