将InnerHTML文本的getted结果转换为元素

时间:2017-07-18 07:47:23

标签: javascript innerhtml

我有一些代码:

    <table>
        <tbody>
            <tr>
                <td id='myTdId'>
                    <input type='text' value='some value' />
                </td>
            </tr>

            ...

        </tbody>
    <table>

我想获得myTdId td元素的innerHTML并获取文本输入的值。有可能吗?

例如:

var tdInnerHTML = document.getElementById('myTdId').innerHTML;
// convert this to element operation and access to value of it ... 
console.log(tdInnerHTML.value); // :(

请帮帮我,谢谢......

编辑: 我无法访问输入文本!

6 个答案:

答案 0 :(得分:3)

如何使用 childNodes 进行导航?

这是一个包含所包含元素的节点的数组。

在你的情况下......

var tdInputVal = document.getElementById('myTdId').childNodes[0].value;
console.log(tdInputVal ); // :(

答案 1 :(得分:2)

你可以在输入上添加Id吗?

<table>
    <tbody>
        <tr>
            <td id='myTdId'>
                <input type='text' value='some value' id="myInput" />
            </td>
        </tr>

        ...

    </tbody>
<table>

然后通过

访问它
var input = document.getElementById('myInput').value;

或通过标签

访问它
var input = document.getElementsByTagName("input")[0].value;

答案 2 :(得分:1)

另一种明确的方法是在您的HTML上设置idclass,这样您就可以轻松获得内部value

例如

HTML:

<input id="text-input" value="">

的Javascript

var inputValue = document.getElementById('text-input').value;
console.log(inputValue);

jQuery版

var inputValue = $('#text-input').val();

希望这有帮助。

答案 3 :(得分:1)

我认为你不需要在该元素上调用innerHTML。你需要获得id为#34; myTdId&#34;的td元素的子元素。为此,您可以使用

var tdElement = document.getElementById('myTdId');
console.log(tdElement.children[0].value);

这样可以获得td元素的值,而无需为td元素设置id或class。

我假设你在td中只有一个元素;

我没有测试代码但它应该可以工作。

答案 4 :(得分:1)

使用getElementById而不是在结果对象上使用getElementBy_XXX。 如果使用getElementsByClassName或TagName,您将获得子元素数组。

//ELEMENT
var tdElement = document.getElementById('myTdId');

// INNER HTML
var tdInnerHTML = document.getElementById('myTdId').innerHTML;

var childElement = tdElement.getElementsByTagName("input");

//if td is only and always first element than we can use  : 
//childElement[0]

alert(childElement[0].value)
<table>
        <tbody>
            <tr>
                <td id='myTdId'>
                    <input type='text' value='some value' />
                </td>
            </tr>

       

        </tbody>
    <table>
    
    <script>
    
    //  I dont use this function but you can if you want
    function getElementInsideElement(baseElement, wantedElementID) {
    var elementToReturn;
    for (var i = 0; i < baseElement.childNodes.length; i++) {
        elementToReturn = baseElement.childNodes[i];
        if (elementToReturn.id == wantedElementID) {
            return elementToReturn;
        } else {
            return getElementInsideElement(elementToReturn, wantedElementID);
        }
    }
}
    
    </script>

答案 5 :(得分:1)

// Use querySelector
var input = document.querySelector('#myTdId input');
var val = input.value;