定位由php创建的id

时间:2017-02-07 22:12:59

标签: javascript php

从JavaScript文件中我通过Ajax调用PHP脚本。 PHP返回一个带表的echo。像这样:

echo "<tr><td id=\"something\">$value<\td><\tr>"; 

这很好用。但现在我想用id“某事”来定位单元格。我无法做到,因为JavaScript无法识别id,因为它在我调用PHP之前已经加载了。 我试着在调用php文件后重新加载我的javascript文件。比它找到id,但它运行我所有其他脚本两次(我认为因为javascript文件加载了两次而且不替换旧的)。

有没有办法在不重新加载javascript文件的情况下定位此ID。 附:我重新加载javascript文件作为PHP文件的一部分。在php文件的最后我放了这样的东西:

echo "<script type=\"text/javascript\" src=\"js/javaScriptfile.js\"></script>";

php脚本如下所示:

echo "<tr><td>Persmachine appels</td><td id=\"capaciteitPersmachineAppelsBeginRonde\">$capaciteitPersmachineAppelsBeginRonde</td><td id=\"uitbreidenPersmachineAppels\">$uitbreidenPersmachineAppels</td><td id=\"actueleCapaciteitPersmachineAppels\">$actueleCapaciteitPermachineAppels</td><td id=\"capaciteitPersmachineAppelsPerStap\">$capaciteitPenSMachineAppelsPerStap</td><td id=\"kostenPersmachineAppelsPerStap\">$kostenUitbreidingPenSMachineAppelsPerStap</td><td><button class=\"btn btn-default\" id=\"BTNpersmachineAppelsPlus\"><img src=\"Graphics\PlusIcon.png\" width=\"20\" /></button><button class=\"btn btn-default\" id=\"BTNpersmachineAppelsMin\"><img src=\"Graphics\minIcon.png\" width=\"20\" /></button></td><td id=\"nieuweCapaciteitPersmachineAppels\">$actueleCapaciteitPermachineAppels</td></tr>";

AJAX调用如下所示:

$.ajax({

            url:'http://12dobec.nl/JFC/php/huidigeStatusPerCategorieDownloadenV2.php',
            data:{klas:klas, team:team, gekozenOverzicht:gekozenOverzicht},
            type: "GET",
            success: function(data){

            $('#BeslissingenFabriek').html(data);

            }});

正如你所看到的,我将两个按钮放入php echo中。我也不能把它们作为目标。我想再次因为之前加载的javascript文件。当再次加载javascript时,它会找到所有内容,但脚本会运行两次。

1 个答案:

答案 0 :(得分:0)

为了定位元素,必须将它们添加到DOM中。还有其他方法,但这是直截了当的。

Element.insertAdjacentHTML()

通过将数据解析为HTML,它将元素添加到示例中的DOM树中。您将能够直接将添加到DOM中创建的元素作为目标

$.ajax({
url:'http://12dobec.nl/JFC/php/huidigeStatusPerCategorieDownloadenV2.php',
            data:{klas:klas, team:team, gekozenOverzicht:gekozenOverzicht},
            type: "GET",
            success: function(data){
            var theTarget = document.getElementById('BeslissingenFabriek');
            theTarget.insertAdjacentHTML('afterbegin',data);
            }});

有关完整说明和更多详细信息,请查看DOCUMENTATION

其他职位包括:

'beforebegin' - Before the element itself.
'afterbegin' - Just inside the element, before its first child.
'beforeend' - Just inside the element, after its last child.
'afterend' - After the element itself.