Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用javascript替换空html标记?_Javascript_Jquery_Html - Fatal编程技术网

如何用javascript替换空html标记?

如何用javascript替换空html标记?,javascript,jquery,html,Javascript,Jquery,Html,我有一些代码,如果它是空的,我想插入或替换为所需的代码集。Javascript或jQuery中的任何方向 如果html代码等于: <td id="Display1234"></td> 改为: <td id="Display1234"> <select name="ShippingSpeedChoice" onchange="RecalcShipping(this);" style=""> <option value=

我有一些代码,如果它是空的,我想插入或替换为所需的代码集。Javascript或jQuery中的任何方向

如果html代码等于:

<td id="Display1234"></td>

改为:

<td id="Display1234">
    <select name="ShippingSpeedChoice" onchange="RecalcShipping(this);" style="">
      <option value="101" selected="">Free</option>
    </select>
</td>

自由的
//如果div为空
if($(“#Display1234”).html(){
//创建一个元素
变量$sel=$('');
//向select元素添加一个选项
$sel.append('Free');
//将select元素添加到div。
$sel.appendTo(“#Display1234”);
}

您需要从获取页面上的所有元素开始(我假设您不知道哪些元素是空的)

我不知道要插入什么数据,但您可以通过
emptyElements
数组进行循环

emptyElements.forEach(function(element) {
  element.innerHTML = 'some content or HTML';
});

尝试使用以下纯JavaScript解决方案:

var td=document.getElementById('Display1234');
if(td.innerHTML.trim()=“”){
//创建选择元素
var select=document.createElement('select');
select.setAttribute('name','ShippingSpeedChoice');
select.setAttribute('onchange','RecalcShipping(this);');
select.setAttribute('style','');
//创建选项元素
var option=document.createElement('option');
option.innerText=“Free”;
option.setAttribute('value','101');
option.setAttribute('selected','');
//将元素附加到td元素
选择.appendChild(选项);
td.appendChild(select);
}

window.addEventListener(“DOMContentLoaded”,function()){
var theCell=document.getElementById(“Display1234”);
if(cell.textContent.trim()=“”){
theCell.innerHTML='Free'
}
});

某物
别的

在页面生命周期的什么时候需要添加新内容?页面加载后可能会重复@ScottMarcus。我们的电子商务商店有一个小故障,它间歇性地不在这个领域内。必须选择该框才能继续。这只会更改id为
#Display1234
的元素的内容。它不会检查该元素是否为空。它不会检查所有元素。我知道OP不清楚,但我高度怀疑这是他们要求的。缺少perenalso,我必须投反对票,因为当我测试它时,它返回了头部、元、链接、脚本中的所有标记,以及其他不应该包含HTML内容的标记。“不得不说,这是一个很酷的主意。”我说。固定的不要使用
document
而使用
document.body
。这只会抓取
标记内的元素。我是一个伪君子,因为我在回答中没有这样做,但是
如果(td.innerHTML.trim()==”){..}
将是一个好主意。
// if the div is empty
if($("#Display1234").html()===""){
    // create a a <select> element
    var $sel = $('<select name="ShippingSpeedChoice" onchange="RecalcShipping(this);" style="">');
    // add an option to the select element
    $sel.append('<option value="101" selected="">Free</option>');
    // add the select element to the div.
    $sel.appendTo("#Display1234");
}
// need to use Array.prototype.slice because getElementsByTagName
// returns an HTMLCollection and not an Array
var allElementsArray = Array.prototype.slice.call(document.body.getElementsByTagName('*'));

var emptyElements = allElementsArray.filter(function(element) {
  return !element.innerHTML; // returns true for all empty elements
});
emptyElements.forEach(function(element) {
  element.innerHTML = 'some content or HTML';
});