Js在我的网站上无法正常工作,即使在Codepen上也可以工作

时间:2018-09-09 22:18:39

标签: javascript wordpress elementor

我尝试设计一种js算法,该算法会覆盖产品详细信息页面上的现有HTML。 XML集成到我的网站后,这是必需的,我想将此规范可视化为表格,但XML集成后,它仅允许以HTML的段落标签存储在我的网站上。

所以;

这是我的代码,在Codepen上工作得很好,但在我的wordpress网站上却没有。

JS

var a,b,c,d,e,f;
var bazes = document.getElementById("prd-desc").getElementsByTagName("div")[0].getElementsByTagName("p") ;
var bazes_t = document.getElementById("prd-desc").getElementsByTagName("div")[0];

a = bazes[0].innerText;
b = bazes[1].innerText;
c = bazes[2].innerText;
d = bazes[3].innerText;
e = bazes[4].innerText;
f = bazes[6].innerText;

//console.log(c);

bazes_t.innerHTML = '<div class ="outer-box"> <table id="urun_inf"> <tr> <td class="col1-head"> Kod </td> <td class="col2-desc">a</td> </tr> <tr> <td class="col1-head"> Ebat </td> <td class="col2-desc"> Açıklama2 </td> </tr> <tr> <td class="col1-head"> Reklam Alanı</td> <td class="col2-desc"> Açıklama3 </td> </tr> <tr> <td class="col1-head"> Renk </td> <td class="col2-desc"> Açıklama4 </td> </tr> <tr> <td class="col1-head"> Merkez Stok </td> <td class="col2-desc"> Açıklama5 </td> </tr> <tr> <td class="col1-head"> Toplam Stok </td> <td class="col2-desc"> Açıklama6 </td> </tr> </table> </div><style> .outer-box{ border : 2px solid; border-style : groove; width : %100; height : auto;}.col1-head,.col2-head{ font-weight : bold; color : blue;}.col1-desc::before,.col2-desc::before{ content : ":";}</style>';

console.log(bazes_t.getElementsByTagName("td")[1].innerText);

bazes_t.getElementsByTagName("td")[1].innerText = a;
bazes_t.getElementsByTagName("td")[3].innerText = b;
bazes_t.getElementsByTagName("td")[5].innerText = c;
bazes_t.getElementsByTagName("td")[7].innerText = d;
bazes_t.getElementsByTagName("td")[9].innerText = e;
bazes_t.getElementsByTagName("td")[11].innerText =f;
<div data-id="6f6ba5e" class="elementor-element elementor-element-6f6ba5e elementor-widget elementor-widget-product-description" id="prd-desc" data-element_type="product-description.default">
				<div class="elementor-widget-container">
			<p>Lacivert</p>
<p>Bisiklet Yaka Lacivert Tişört</p>
<p>M Beden</p>
<p>1458</p>
<p>1458</p>
<p>&nbsp;</p>
<p>* %100 Pamuklu * 30/1 Süprem Kumaş * İstenilen renk ve bedenlerde dikim yapılır * Yandan Dikişli * 145 gr.</p>
		</div>
				</div>

因此,此代码在Codepen或此处看起来都很不错。我在Elementor的OceanWP wordpress网站上将代码实现为“ Woocommerce的单个产品页面”,我可以使用插件重新设计该页面。 (它允许我向此页面添加一个元素或自定义HTML,并在“ script / script”标记中实现此代码)

每个产品都有独特的规格,因此该JS必须获取每个产品页面的数据,并像上面的代码一样将其显示为表格。

在此先感谢

C。

1 个答案:

答案 0 :(得分:1)

不确定要使用此代码做什么,只需更改您的javascript代码(只需添加window.onload,它就可以工作。

window.onload = function(){
  var a,b,c,d,e,f;
  var bazes = document.getElementById("prd-desc").getElementsByTagName("div")[0].getElementsByTagName("p");
  var bazes_t = document.getElementById("prd-desc").getElementsByTagName("div")[0];

  a = bazes[0].innerText;
  b = bazes[1].innerText;
  c = bazes[2].innerText;
  d = bazes[3].innerText;
  e = bazes[4].innerText;
  f = bazes[6].innerText;

  //console.log(c);

  bazes_t.innerHTML = '<div class ="outer-box"> <table id="urun_inf"> <tr> <td class="col1-head"> Kod </td> <td class="col2-desc">a</td> </tr> <tr> <td class="col1-head"> Ebat </td> <td class="col2-desc"> Açıklama2 </td> </tr> <tr> <td class="col1-head"> Reklam Alanı</td> <td class="col2-desc"> Açıklama3 </td> </tr> <tr> <td class="col1-head"> Renk </td> <td class="col2-desc"> Açıklama4 </td> </tr> <tr> <td class="col1-head"> Merkez Stok </td> <td class="col2-desc"> Açıklama5 </td> </tr> <tr> <td class="col1-head"> Toplam Stok </td> <td class="col2-desc"> Açıklama6 </td> </tr> </table> </div><style> .outer-box{ border : 2px solid; border-style : groove; width : %100; height : auto;}.col1-head,.col2-head{ font-weight : bold; color : blue;}.col1-desc::before,.col2-desc::before{ content : ":";}</style>';

  console.log(bazes_t.getElementsByTagName("td")[1].innerText);

  bazes_t.getElementsByTagName("td")[1].innerText = a;
  bazes_t.getElementsByTagName("td")[3].innerText = b;
  bazes_t.getElementsByTagName("td")[5].innerText = c;
  bazes_t.getElementsByTagName("td")[7].innerText = d;
  bazes_t.getElementsByTagName("td")[9].innerText = e;
  bazes_t.getElementsByTagName("td")[11].innerText =f;
}
相关问题