Получение данных таблицы HTML (td) (т. Е. Text или val) с использованием заголовка таблицы (th) в Textarea - PullRequest
0 голосов
/ 16 июня 2011

У меня есть SQLite3 (т.е. запрос Spatialite), который выводит результаты в таблицу HTML.Я хочу получить данные AsText (Geometry) для вывода в <textarea>

Вот table и некоторые предположения.

<table>
    <tr>
         <th>name</th>
         <th>AsText(Geometry))</th>
    </tr>
    <tr>
         <td>Andres Street</td>
         <td>LINESTRING(7.120068 43.583917,7.120154 43.583652,7.120385 
          43.582716,7.12039 43.582568,7.120712 43.581511,7.120873 43.580718)</td>
    </tr>
</table>


$('#wktInput').click(function(){

???
???

     var asTextGeometryText =

    $("#wktResult").text(asTextGeometryText);
});




<textarea name='wktResult' value ='wktResult' ROWS="10" COLS="50" >'Should Display AsText(Geometry Column here!'</textarea> 

Это DOM

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    var fieldNames = aResult.fieldNames;
    var records = aResult.data;
    var numFields = fieldNames.length;
    var numRecords = records.length;
    var container = document.getElementById('queryResults');
    container.innerHTML = '';
    var table = document.createElement('table');
    container.appendChild(table);
    var headerRow = document.createElement('tr');
   table.appendChild(headerRow);
    for(var i = 0; i < numFields; i++){
        var header = document.createElement('th');
        header.innerText = fieldNames[i];
        headerRow.appendChild(header);
    }

    for(var i = 0; i < numRecords; i++){
        var tableRow =  document.createElement('tr');
        table.appendChild(tableRow);

        for(var j = 0; j < numFields; j++){
            var tableData = document.createElement('td');
            tableRow.appendChild(tableData);
            tableData.innerText = records[i][j];
        }
    }
}

<input id='SQLinput' size="90" rows="3" value = 'SELECT name, AsText(Geometry) FROM Roads Where MbrContains(Geometry, MakePoint(7.120872,43.580722,4326))'></input>

<input type='button' class='button' value='Display AsText' ontouchend='wktAsTextInput'/>

Заранее спасибо

Похоже, что texarea использует id для значения.

<textarea id="field1">example text</textarea> [Эта проблема также связана с textarea в jQuery] [1]

Этот пример ниже демонстрирует, что jquery не работает в textarea, используя id.

    <script type="text/javascript">
$(function() {
    $('button').click(function() {
        var row = $('input:first').val();
        var column = $('input:eq(1)').val();
        var cell = $('table tr:eq('+row+') td:eq('+column+')');
        if (cell.length == 0) {
            $('#value').text('Undefined');
        }
        else {
            $('#value').text(cell.text());
        }
    });
});
</script>
</head>

<body>
<h1>Table Cell Value</h1>
<table>
    <tr><td>Cell 1-1</td><td>Cell 1-2</td><td>Cell 1-3</td></tr>
    <tr><td>Cell 2-1</td><td>Cell 2-2</td><td>Cell 2-3</td></tr>
    <tr><td>Cell 3-1</td><td>Cell 3-2</td><td>Cell 3-3</td></tr>
</table>

Row: <input type="text" value="0">
Column: <input type="text" value="0">
Value: <span id="value">?</span><br>
Textarea: <textarea id="value" >Try this! this is not working</textarea>
<button>Get Value</button>

Все работает в этом примере.Затем добавил текстовое поле, чтобы посмотреть, смогу ли я заставить его работать.Textarea не работает в этом примере.Что-то не так с jquery и textarea, использующими id и имя.

Textarea: <textarea name="value" >Try this! this is not work as well</textarea>

Как это не работает.

Новая информация об этом textarea значении.

$('#id_of_textarea').attr('value'); //to get and...
$('#id_of_textarea').attr('value','updated value of textarea'); //to set it...

<textarea id="editor_desc" onkeyup="update_textarea(this)"></textarea>

function update_textarea(obj)
{
    $('#mydiv').text($(obj).attr('value')); //whatever you type in the textarea would be reflected in #mydiv

}

http://blog.ekini.net/2009/02/24/jquery-getting-the-latest-textvalue-inside-a-textarea/

Кажется, моя проблема не в рендеринге обычного HTML-планшета, а в прямом рендеринге на экран.

Автор QuickConnect, скажем, сказал мне:

Если вы хотите использовать одно из этих значений, вы должны извлечь его из 2D-массива.

Ответы [ 2 ]

1 голос
/ 16 июня 2011

Вы имеете в виду отображение содержимого в столбце AsText (Geometry) в текстовой области?

var text = []
$('table').find('tr:has(td)').each(function(){
    text.push($.trim($(this).find('td:eq(1)').html()));
})
// and you set it to your textarea
$('textarea[name="wktResult"]').val(text.join('\n'));
0 голосов
/ 16 июня 2011

1 - присвойте атрибут id вашей текстовой области, чтобы использовать его в jquery, или если ваша страница содержит только одну текстовую область, вы можете использовать имя тега insteasd.

2 - чтобы получить текст textarea, вам нужно просто вызвать текстовую функцию без каких-либо параметров

$('#wktInput').click(function(){
     var asTextGeometryText =$('table').find('th').eq(2).text();
     $('#id_of_textarea').attr('value',asTextGeometryText);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...