0

我有一个 asp.net 页面 - 它在主页中呈现许多自定义控件 - 我有一个 asp.net 文本框 - 在某些情况下它必须是可编辑的,而在其他情况下它必须是只读的。在大多数情况下,它都按预期工作。我遇到了一个小错误。

在此处输入图像描述

因此,在我的“上一年”列中,渲染值应该仅为 1、2、3、0 等 - 正如您在渲染标记时所看到的那样,它会创建此标记:

<td id="ctl00_ctl00_PartContentPlaceHolderMain_ContentPlaceHolderMain_ctl00_ctrlComparison_ctrlComparisonCars1_ctl06">
                        <input name="ctl00$ctl00$PartContentPlaceHolderMain$ContentPlaceHolderMain$ctl00$ctrlComparison$ctrlComparisonCars1$tbPreviousNoManualCars" type="text" value="1" disabled="disabled" id="ctl00_ctl00_PartContentPlaceHolderMain_ContentPlaceHolderMain_ctl00_ctrlComparison_ctrlComparisonCars1_tbPreviousNoManualCars" class="tbPreviousNumber ui-widget-content ui-corner-all" style="width:50px;display:none;"><span>1</span><span>1</span>                     
                    </td>

所以问题是产生的双跨度。在呈现此控件的主页中,我想做类似的事情:

        var test = $("#ctl00_ctl00_PartContentPlaceHolderMain_ContentPlaceHolderMain_ctl00_ctrlComparison_ctrlComparisonCars1_PreviousNoManualCars").children().find('span').val();
        alert(test);

但是我的警报说未定义。是否可以使用与上述类似的方法删除其中一个跨度?

还有一种更好的方法来获取将要呈现的 id - 我刚刚从开发人员工具中提取了屏幕上的确切 ID,只是为了进行测试以尝试使其正常工作。

谢谢

4

1 回答 1

1

您使用了 val(),但它应该是text(),因为它不是输入元素,它的span

也使用next()

 var test = $("#ctl00_ctl00_PartContentPlaceHolderMain_ContentPlaceHolderMain_ctl00_ctrlComparison_ctrlComparisonCars1_tbPreviousNumberNoManualCars")
    .next('span').text();
    alert(test);
于 2013-10-03T10:37:32.097 回答