修改:从输入更改为跨度和jquery / javascript未找到并设置元素值

时间:2015-09-22 17:12:47

标签: jquery

我确实有代码可以工作,但我需要修改它

this documentation

然后我被告知需要从输入更改为标签(span)

即使我从

更改,此代码仍无效

http://jsfiddle.net/bthorn/xbs5c41b

.find("span")

 function setDateTimeOn(elm) {
        var formattedDate = GetCurrentDateTime(); //get formatted date
        $(elm) //clicked button
            .parent("td") // container td
            .next() // next td
            //.find("input") // find child input
            .find("span")
            .val(formattedDate); //set date
    }

注意我注释掉的代码行

<table>
<tr>
    <td style="width:5px;">
        <input type="button" id="GridView1__ctl2_AddButton0" name="GridView1:_ctl2:AddButton0" value="On" class="btn-blue" onclick="setDateTimeOn(this)">
    </td>
    <td style="width:150px;">
       <!-- <input id="GridView1__ctl2_txtStormTimeOn" type="text" name="GridView1:_ctl2:txtStormTimeOn" value="">-->
        <span id="GridView1__ctl2_lblStormTimeOn"></span> 
    </td>
</tr>

HTML

ruby console

&#34; .find()无法在span上工作?

2 个答案:

答案 0 :(得分:4)

find方法有效。

您的代码的问题是val,但它没有,因为它试图在元素上找到value属性,虽然HTMLInputElement有一个属性, HTMLSpanElement没有。

您必须将其更改为使用text方法。

/* (...) */
.find("span")
.text(formattedDate); // set date

这是your fiddle updated

答案 1 :(得分:0)

span元素不会随您的输入一起使用,因此您必须使用parent()来达到它的范围。 而且,你不会使用带有span的val,就像div一样,你必须使用text()或html()代替:

function setDateTimeOn(elm) {
    var formattedDate = GetCurrentDateTime(); //get formatted date
    $(elm) //clicked button
        .parent("td") // container td
        .next() // next td
        //.find("input") // find child input
         .parent().find("span")
        .html(formattedDate); //set date
}