Select 元素的内容并删除其内容的第一个和最后一个字符

Select element by its content and remove the first and last character of its content

我有一个动态页面,它从 Google App Script 获取数据并用它们进行可视化。

这是我用作 HTMLService

的代码

Index.html

<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript">
    google.charts.load('current', {'packages':['table']});
    google.charts.setOnLoadCallback(drawSheetName);

    function drawSheetName() {
        var query = new google.visualization.Query('/*query contents*/');
        query.send(drawTable);
    }

    function drawTable(response) {
        var data = response.getDataTable();
        var table = new google.visualization.Table(document.getElementById('table_div'));
        table.draw(data, {showRowNumber: false, width: '100%', height:'100%'});
    }
</script>
<body>
    <div id="table_div"></div>
</body>

所以,我想 select 可视化的最后一列的值,并用 CSS, JS, JQuery 删除它们的第一个和最后一个字符...不管怎样。

值始终包含 <a href,因此 selector 可以通过元素的内容或其行号来定义。我将尝试用代码来解释我正在尝试做什么,但这是不正确的,因为我正在混合使用这些语言。

<script>
    var select = $( "td:contains('<a href')" );
    select.slice(1, -1);
</script>

或者

<script>
    document.getElementByTagName("TD"):contains('<a href').slice(1, -1);
</script>

$('some_selector') returns 一个对象,所以你不能在对象上使用切片,它应该是一个字符串,在你得到你的 tds 之后像这样: var toBeSliced = "Hello world"; // string toBeSliced = toBeSliced.slice(1,toBeSliced.length -1 ); // cut off first and last chars console.log(toBeSliced);

在您获得包含数据的 html 标签后,您可以使用 element.textContent.slice( _ , _ ) ;

String.prototype.slice()

您需要循环每一行以删除最后一列的第一个和最后一个字符。将 drawTable 函数替换为下面的

function drawTable(response) {
        var data = response.getDataTable();
        var table = new google.visualization.Table(document.getElementById('table_div'));
        table.draw(data, {showRowNumber: false, width: '100%', height:'100%'});
        $(".google-visualization-table-table tr td:nth-child(11)").each(function() { // Assuming 11 is the last column number
           var data = $(this).text();
           $(this).text(data.slice(1, data.length - 1));
       });
    }