関連レコードの幅の調整がうまくいきません。

背景・実現したいこと

関連レコードの各項目の幅を調整したい

試したこと

こちらの内容に沿ってJSコードの反映

 

エラー情報

ブラウザの開発者ツールのコンソールから下記エラーが出ています。
“Uncaught TypeError: Cannot read properties of undefined (reading ‘style’)”

 

利用したソースコード

 

(() => {

'use strict';

kintone.events.on('app.record.detail.show', (event) => {

varths = $(kintone.app.record.getFieldElement("関連レコードの名称を入れています")).find('th');

ths[4].style.minWidth = '1000px'

});

})();

 

ブラウザの開発者ツールで確認すると、

style="width: auto;"

とあり、スタイル自体は当てられています。

幅は自動で広がるので値を指定する必要はないのでは?

と思われるかもしれませんが、

別カラムのテキストの分量によっては、適切に幅が広がらず、

予期しない箇所でテキストが折り返されており、

見た目に違和感を持っています。

どのように対処すればよいかご教示いただけますと幸いです。

渡邉 航 様

こんにちは。

ぱっと見で申し訳ないですけど、

varths = $(kintone.app.record.getFieldElement("関連レコードの名称を入れています")).find('th');

この部分、半角スペース抜けてるんじゃないでしょうか。

var ths = $(kintone.app.record.getFieldElement("関連レコードの名称を入れています")).find('th');

新屋 様

ご確認ありがとうございます!

コード貼り付け時に誤ってスペースを削除してしまったようです。

実際のコードは半角スペースが入力されています。

渡邉 航 様

それでは、エラメッセージ見る限りで

ths[4].style

ここでエラーが起きているということは、[4] が存在しないのではないでしょうか。

プログラムでは開始が0からですので、最終列(4列目)を選択したつもりが実は[3]とかではないですか?

DOM操作は、操作したいDOMの構成がどうなってるのかわからないと回答できないので、予想の回答で申し訳ないです。

 

いちようコンソールログで、ths に値が代入されてるか確認はした方が良いと思いますよ。

入ってないんであれば、そもそも取得時のセレクターの記述ミスの可能性があります。

コンソールログで確認をしたところ、

m.fn.init [div.control-value-gaia.value-5517818, context: div.control-value-gaia.value-5517818]

0: div.control-value-gaia.value-5517818

context: div.control-value-gaia.value-5517818

length: 1

[[Prototype]]: Object(0)

となりました。

これは要素が取得できていないと判断すれば良いでしょうか・・?

 

また、こちらで仕様を確認したところ、


以下のフィールドを指定した場合 または 閲覧権限のないフィールドを指定した場合には null が返ります。

  • ステータス
  • 作業者
  • テーブルに含まれるフィールド
  • 関連レコード一覧に含まれるフィールド

とありました。

どうやら関連レコードは取得できないようですね・・・。

渡邉 航 様

要素は取得できていますよ。

ただ length が1になっているので、そもそも [4] は存在しないみたいです。

 


以下のフィールドを指定した場合 または 閲覧権限のないフィールドを指定した場合には null が返ります。

  • ステータス
  • 作業者
  • テーブルに含まれるフィールド
  • 関連レコード一覧に含まれるフィールド

また上記の説明は、関連レコードは取得できますが関連レコードに含まれるフィールドコードは取得できないということですね。

何処が悪いのかは、申し訳ないですけど関連レコードの構造やその他詳細情報がないと何も判断できませんが。

 

想像すると要素は取得できているけど、.find(‘th’) が効いていないように見えますね。

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。