js
1document.addEventListener("DOMContentLoaded", function(){
2 "use strict";
3 //エレメント単体の処理
4 function elemCheck(elem, index){
5 const elem_child = elem.children;
6 console.log((index + 1) + "個めのエレメントです。");
7 //子要素の存在チェック
8 if(!elem_child.length){
9 console.log("子要素空です");
10 }
11
12 //テキストノードの存在チェック
13 const text = elem.textContent;
14
15 if(!text){
16 console.log("テキストノード空です");
17 }else{
18 console.log("テキストノードは" + text + "です");
19 }
20 //テキストノード内容検索
21 const txt_str = "検索したい文字";//変更箇所
22 const txt_reg = new RegExp(txt_str);
23 if((txt_reg).test(text)){
24 console.log("テキストノードに「" + txt_str + "」が含まれています");
25 }else{
26 console.log("テキストノードに「" + txt_str + "」は含まれていません");
27 }
28
29 //クラス名チェック
30 const cn_str = "検索したいクラス名";//変更箇所
31 const cn_reg = new RegExp(cn_str);
32 const class_name = elem.getAttribute("class");
33 if((/test/).test(class_name)){
34 console.log("クラス名「" + cn_str + "」が含まれています");
35 }else{
36 console.log("クラス名「" + cn_str + "」が含まれています");
37 }
38 console.log("-----------------------------------------------");
39 }
40
41 //クラス名「article」のHTMLエレメント全てを取得しfotEachで順番に処理
42 const elem_all = document.querySelectorAll('.article');
43 const elems = Array.prototype.slice.call(elem_all,0);
44 (function(){
45 elems.forEach(function(elem, index){
46 elemCheck(elem, index);
47 });
48 }());
49});
どうしたのかが分かりませんでしたので具体的なコード例は挙げられませんでが、エレメントの各パラメータを取得するコードを書きましたのでこれで何とかなるんでは無いかなと思います。
以下質問方法の改善案です。
空っぽ->何が「空っぽ」なのか分からないので具体的に書きましょう。
別のClassにあるとある文字列
->「別のclassに記述している文字列」置き換えた方が読み易いかと思います。また例を挙げるとより伝わり易くなると思います。例:<p>この文字</p>
該当
->別のClassの文字列がどの様に判断されると該当するのかが不明です。「該当」・「その」・「あれ」など省略するような書き方の場合それが何なのか分かりやすく書いた方が良いと思います。
var b = document.getElementsByClassName('data')の
->「クラス名が「data」のエレメントの」と置き換えた方が読み易いかと思います。
b[4]に該当の文字列、"test" があった場合、この文字列を
->ここが恐らく回答者さん皆様が困惑している部分だと思います。
常に判断して->判断条件が分からないので条件を書きましょう。
コーディングの最中でも良いのでそのコードをそのまま載せましょう。また、そのままでは分かりにくい、もしくは内容を伏せたい場合は処理部分を言葉にしたりしたものをあげると良いかもです。
因みに今回の質問に答える際の検索ワードは以下の通りです。
HTML・Javascript・DOM操作・子要素・クラス名・タグ・テキスト・取得
文章で質問を伝えるのって難しいですね。
私も良く質問や質問への返答などで不備があって注意を受けますので他人の事は言えませんが、お互い頑張りましょう!